如何判断一个字符串里面含有另一个字符串c++
时间: 2024-09-08 09:03:58 浏览: 101
在 C++ 中,你可以使用 `find` 函数或者 `contains` 集合函数来判断一个字符串是否包含另一个字符串。以下是两种常见方法:
1. 使用 `std::string` 类的 `find` 函数:
```cpp
#include <iostream>
#include <string>
bool containsString(std::string str1, std::string str2) {
if (str1.find(str2) != std::string::npos) {
return true;
}
else {
return false;
}
}
int main() {
std::string mainStr = "Hello, world!";
std::string substr = "world";
if (containsString(mainStr, substr)) {
std::cout << mainStr << " contains " << substr << std::endl;
} else {
std::cout << mainStr << " does not contain " << substr << std::endl;
}
return 0;
}
```
在这个例子中,`find` 如果找到 `str2` 就返回 `str2` 的起始位置,找不到则返回 `npos`。所以检查返回值是否等于 `npos` 可以确定是否包含。
2. 对于C++17及以上版本,可以使用标准库中的 `std::ranges::contains` 或者 Boost 库的 `boost::algorithm::contains`:
```cpp
#include <iostream>
#include <string>
#include <ranges> // For C++17 or later
bool containsString(std::string_view str1, std::string_view str2) {
return std::ranges::contains(str1, str2);
}
int main() {
std::string mainStr = "Hello, world!";
if (containsString(mainStr, "world")) {
// ...
}
return 0;
}
```
阅读全文