判断字符串str包含于vector strlist内
时间: 2024-09-12 18:14:29 浏览: 34
为了判断一个字符串 `str` 是否包含于一个 `std::vector<std::string>` 类型的向量 `strlist` 中,我们可以遍历 `strlist` 并使用 `std::string` 类的 `find` 方法来检查 `str` 是否为向量中任何一个字符串的子串。以下是实现这一功能的C++代码示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
bool IsStringInVector(const std::string& str, const std::vector<std::string>& strlist) {
for (const std::string& listStr : strlist) {
if (listStr.find(str) != std::string::npos) {
return true;
}
}
return false;
}
int main() {
std::vector<std::string> strlist = {"apple", "banana", "cherry"};
std::string str = "ban";
if (IsStringInVector(str, strlist)) {
std::cout << "The string '" << str << "' is contained in the vector." << std::endl;
} else {
std::cout << "The string '" << str << "' is NOT contained in the vector." << std::endl;
}
return 0;
}
```
在这段代码中,`IsStringInVector` 函数通过遍历 `strlist` 向量中的每个元素,并使用 `std::string::find` 方法来查找 `str` 是否为当前遍历到的字符串的子串。如果找到了,`find` 方法会返回子串在字符串中首次出现的位置,这个位置不是 `std::string::npos`(`std::string::npos` 是当子串未找到时返回的特殊值)。如果遍历结束后没有找到,函数返回 `false`。
阅读全文