Ich mache eine Reihe von Suchvorgängen in einer Zeichenfolge, und irgendwann wird eine der Zeichenfolgen übersehen, und meine Reihe von Suchvorgängen sollte fehlschlagen.
Ich hatte erwartet, dass die Position, sobald sie std::string::npos erreicht hat, dort bleiben würde, aber das ist nicht der Fall. Die Übergabe von std::string::npos an std::string.find scheint die Suche wieder am Anfang zu beginnen
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
Warum wird es nicht als Ende der Zeichenkette verstanden?
Aktualisieren: Die Absicht ist, nach einer Reihe von Zeichenfolgen zu suchen und das Ergebnis am Ende zu überprüfen
pos = str.find(string1, pos)
pos = str.find(string2, pos)
pos = str.find(string3, pos)
if (pos != std:string::npos)
{ // All strings found