字符串的查找
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;
}
}
输出的结果如图所示
因为字符串的第一个位置是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。
string.replace函数:
这是string的替换函数:
string& replace(int pos, int n, const string& str);
需要指定从哪个位置起,多少个字符,替换成什么样的字符串。
string str1 = "abefcdgcdfghcd";
str1.replace(2,4,"111");
cout << "str1=" << str1 << endl;
输出如下:
从字符串的第二个位置开始数,4个字符,替换成111,比较容易理解。