Я выполняю серию поисков в строке, и где-то в строке одна из строк будет пропущена, и мой набор поисков должен завершиться ошибкой.
Я ожидал, что как только позиция достигнет 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