chaîne de caractères.find() ne retourne pas les -1

Le code ci-dessous est très simple. Que je sache, si string::find() n'a pas trouvé matches elle retourne -1. Mais pour certaines raisons, le code ci-dessous ne fonctionne pas. Chaque fois que j'exécute ce code j'obtiens boucle sans fin. Merci pour l'aide!

#include <string>
#include <iostream>
using namespace std;

int main()
{
    string text;
    text = "asdasd ijk asdasd";
    string toReplace = "ijk";
    cout<<text<<endl;
    int counter = 0;
    while ( text.find(toReplace) != -1)
        counter++;

    cout<<counter<<endl;

    system("pause");
}
  • Il me semble certain temps passé à lire la documentation de std::basic_string::find() serait susceptible de faire des merveilles dans l'apprentissage du fonctionnement de quelque chose.
  • Mise à JOUR: j'ai essayé d'utiliser tout ( le texte.trouver(toReplace) != string::obnl ) mais j'ai toujours boucle sans fin 🙁
  • Avez-vous essayez de faire quelque chose dans ce tout-corps en plus d'incrémenter un compteur de sens? C'est là la première case, le temps à lui seul n'est pas pour le faire aucune faveur. Peut-être changer d'endroit où vous commencez à la recherche après chaque touche réussie.
InformationsquelleAutor eoLithic | 2013-04-01