C++代码怎么判断一个目标字符串是否包含输入的一个字符串,要求输入的可能是中文也可能是数字或者字符,但是字符要不区分大小写
时间: 2024-09-26 09:04:34 浏览: 23
C++实现判断一个字符串是否为UTF8或GBK格式的方法
在C++中,你可以使用`std::string`的成员函数`find()`或`contains()`来检查一个字符串是否包含另一个字符串,无论字符是中文、数字还是字母,并且忽略大小写。这里是一个示例:
```cpp
#include <string>
#include <cctype> // 包含tolower()函数用于转换字符到小写
bool containsIgnoringCase(const std::string& mainStr, const std::string& subStr) {
for (const char c : subStr) {
char lower_c = std::tolower(c); // 转换为小写
if (mainStr.find(lower_c) == std::string::npos) { // 使用tolower后的字符查找
return false;
}
}
return true; // 如果遍历完subStr都没有找到,则返回true
}
int main() {
std::string mainString("Hello, 世界123");
std::string substr("世界");
if (containsIgnoringCase(mainString, substr)) {
std::cout << "Substring found!" << std::endl;
} else {
std::cout << "Substring not found." << std::endl;
}
return 0;
}
```
在这个例子中,`containsIgnoringCase`函数会先将子串中的每个字符转为小写,然后在主字符串中搜索相应的小写字符。如果找到了所有小写字符,那么就认为原始子串存在。
阅读全文