字符串的查找

string.find()函数:
这个函数比较容易理解,就是按照string 的正顺序往后进行对比,查找str第一次出现的位置。如果可以找到,则返回在sring的位置,不能找到的话,返回-1,因此我们可以写一个if函数进行判断。

void test()
{
string str1="abefcdgcdfghcd";
int pos=str1.find("cd");
if(pos==-1)
{
cout<<"字符串没有找到"<<endl;
}
else{
cout<<"cd的位置为:"<<pos<<endl;
}
}

输出的结果如图所示

java 替换第一个出现的字符 string替换第一个出现的字符_visual studio


因为字符串的第一个位置是0,所以cd为4。

string.rfing()函数:
这个函数是查找目标字符串最后一次出现的位置,也是从左往右开始数位置的,但是找的是最后一次出现的位置。

void test01()
{
	string str1 = "abefcdgcdfghcd";
	int pos=str1.find("cd");
	if (pos == -1)
	{
		cout << "字符串未找到" << endl;
	}
	else
	{
		cout << "cd的位置为:" << pos << endl;
	}
	int pos1 = str1.rfind("cd");
	if (pos1 == -1)
	{
		cout << "字符串未找到" << endl;
	}
	else
	{
		cout << "cd的位置为:" << pos1 << endl;
	}
}

rfind函数输出的结果为12,cd从右往左看是处在最后位置的,然后从头开始数的话,是12,因此输出为12。

java 替换第一个出现的字符 string替换第一个出现的字符_java替换第一个出现的字符_02

string.replace函数:

这是string的替换函数:

string& replace(int pos, int n, const string& str);

需要指定从哪个位置起,多少个字符,替换成什么样的字符串。

string str1 = "abefcdgcdfghcd";
str1.replace(2,4,"111");
cout << "str1=" << str1 << endl;

输出如下:

java 替换第一个出现的字符 string替换第一个出现的字符_c++_03


从字符串的第二个位置开始数,4个字符,替换成111,比较容易理解。