如何判断string是否含有字符串“阿萨德”
时间: 2024-09-16 07:05:05 浏览: 26
在C++中,你可以使用`std::string`的`find()`或`contains()`方法来检查一个字符串是否包含另一个子串"阿萨德"。这里有两个方法:
1. 使用`find()`函数:
```cpp
#include <iostream>
#include <string>
bool containsString(std::string str, const std::string& subStr) {
return str.find(subStr) != std::string::npos;
}
int main() {
std::string s = "这是一个测试字符串";
if (containsString(s, "阿萨德")) {
std::cout << "字符串中含有 '阿萨德'" << std::endl;
} else {
std::cout << "字符串中不含有 '阿萨德'" << std::endl;
}
return 0;
}
```
在这个例子中,如果`find()`返回的索引不是`std::string::npos`(表示未找到),则说明找到了子串。
2. 如果你的程序支持C++17及以上版本,还可以使用`std::ranges::contains`:
```cpp
#include <iostream>
#include <string>
#include <ranges>
bool containsString(std::string_view sv, const std::string_view substr) {
return std::ranges::contains(sv, substr);
}
int main() {
std::string s = "这是一个测试字符串";
if (containsString(s, "阿萨德")) {
std::cout << "字符串中含有 '阿萨德'" << std::endl;
} else {
std::cout << "字符串中不含有 '阿萨德'" << std::endl;
}
return 0;
}
```
这将简化查找过程。