Como verificar se uma string contém uma substring em C++?
Olá a todos! Comecei a estudar C++ recentemente e me deparei com um problema: como verificar se uma string contém outra string? Em outras linguagens, como Python, isso é feito simplesmente com o operador `in` ou o método `.find()`. Em C++, estou um pouco confuso.
Eu tenho uma variável `std::string text = "Hello, world!";` e preciso verificar se ela contém a substring `"world"`. Tentei escrever o seguinte 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 << "Não encontrado" << std::endl;
}
return 0;
}
```
Mas esse código não funciona corretamente: quando a substring está presente, às vezes ele imprime "Não encontrado", e quando a substring não está, pode imprimir "Encontrado". Li que `find()` retorna algum índice, mas não entendi como usá-lo corretamente.
Por favor, expliquem como verificar corretamente.