我的代码如下:
string s_1 = "ssissippi";
string s = "si";
size_t pos = s_1.find_first_of(s);
while (pos != string::npos)
{
cout << pos << endl;
pos++;
pos = s_1.find_first_of(s, pos);
}
我得到这样的结果:
0,1,2,3,4,5,8.
我不知道是什么导致了答案。
如果有任何帮助,我将不胜感激。
最佳答案
您似乎是指成员函数 find()
而不是 find_first_of()
例如:
string s_1 = "ssissippi";
string s = "si";
size_t pos = s_1.find(s);
while (pos != string::npos)
{
cout << pos << endl;
pos++;
pos = s_1.find(s, pos);
}
成员函数 find_first_of()
查找源字符串中第一个位置,其中一个字符存储在指定为参数的字符串中。
关于c++ - 为什么 string::find_first_of() 返回意外结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723095/