如何检查字符串是否包含子串在C++中?
大家好!我刚开始学习C++,遇到了一个问题:如何检查一个字符串是否包含另一个字符串?在其他语言中,比如Python,可以通过 `in` 运算符或 `.find()` 方法轻松实现。但在C++中,我有点困惑。
我有一个变量 `std::string text = "Hello, world!";`,需要检查其中是否包含子串 `"world"`。我尝试写了这样的代码:
```cpp
#include
#include
int main() {
std::string text = "Hello, world!";
std::string substr = "world";
if (text.find(substr)) {
std::cout << "找到!" << std::endl;
} else {
std::cout << "未找到" << std::endl;
}
return 0;
}
```
但这段代码运行不正确:当子串存在时,它有时输出“未找到”,而当子串不存在时,却可能输出“找到”。我读到 `find()` 返回某个索引,但不知道如何正确使用它。
请解释一下如何正确检查。