我正在一个字符串中进行一系列搜索,沿着这条线的某个地方会丢失一个字符串,我的一组搜索应该会失败。
我曾预计,一旦位置达到 std::string::npos 它会留在那里,但事实并非如此。将 std::string::npos 传递给 std::string.find 似乎再次从头开始搜索
std::string str("frederick");
std::string::size_type pos = str.find("der",std::string::npos);
TS_ASSERT_EQUALS(pos, std::string::npos); // FAIL, 3 is returned
为什么不表示字符串的结尾?
更新:目的是按顺序搜索一系列字符串,并在最后检查结果
pos = str.find(string1, pos)
pos = str.find(string2, pos)
pos = str.find(string3, pos)
if (pos != std:string::npos)
{ // All strings found