答案 0 :(得分:7)
您似乎是指成员函数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()
查找源字符串中的第一个位置,其中存在指定为参数的字符串中的一个字符存在。
答案 1 :(得分:6)
您的find_first_of
确实:
查找第一个字符,该字符等于str。
中的一个字符
所以它不检查字符串“si”在那里(就像你可能期望的那样),而是“s”或“i”。使用std::string::find()
检查整个字符串。