Comment vérifier si une chaîne contient une sous-chaîne en C++?
Bonjour à tous ! Je viens de commencer à apprendre le C++ et j'ai rencontré un problème : comment vérifier si une chaîne en contient une autre ? Dans d'autres langages, comme Python, cela se fait simplement avec l'opérateur `in` ou la méthode `.find()`. Mais en C++, je suis un peu perdu.
J'ai une variable `std::string text = "Hello, world!";` et je dois vérifier si elle contient la sous-chaîne `"world"`. J'ai essayé d'écrire ce code :
```cpp
#include
#include
int main() {
std::string text = "Hello, world!";
std::string substr = "world";
if (text.find(substr)) {
std::cout << "Trouvé !" << std::endl;
} else {
std::cout << "Pas trouvé" << std::endl;
}
return 0;
}
```
Mais ce code ne fonctionne pas correctement : quand la sous-chaîne est présente, il affiche parfois "Pas trouvé", et quand elle est absente, il peut afficher "Trouvé". J'ai lu que `find()` retourne un certain index, mais je n'ai pas compris comment l'utiliser correctement.
S'il vous plaît, expliquez-moi comment vérifier correctement.