¿Cómo verificar si una string contiene una substring en C++?
¡Hola a todos! Acabo de empezar a aprender C++ y me encontré con un problema: ¿cómo verificar si una string contiene otra string? En otros lenguajes, como Python, esto se hace simplemente con el operador `in` o el método `.find()`. Pero en C++ estoy un poco confundido.
Tengo una variable `std::string text = "Hello, world!";` y necesito verificar si contiene la substring `"world"`. Intenté escribir este código:
```cpp
#include
#include
int main() {
std::string text = "Hello, world!";
std::string substr = "world";
if (text.find(substr)) {
std::cout << "¡Encontrado!" << std::endl;
} else {
std::cout << "No encontrado" << std::endl;
}
return 0;
}
```
Pero este código funciona incorrectamente: cuando la substring está presente, a veces imprime "No encontrado", y cuando no está, puede imprimir "¡Encontrado!". He leído que `find()` devuelve algún índice, pero no entendí cómo usarlo correctamente.
Por favor, expliquen cómo verificar correctamente.