std string find不区分大小写
时间: 2023-11-24 09:06:59 浏览: 431
可以使用C++的标准库中的std::string的find函数实现不区分大小写的查找。具体实现方法是在调用find函数时,使用自定义的比较器,将比较器作为find函数的第三个参数传入。以下是一个例子:
```c++
#include <iostream>
#include <string>
#include <algorithm>
// 自定义比较器,实现不区分大小写的比较
struct CaseInsensitiveCompare {
bool operator()(const char& c1, const char& c2) const {
return std::tolower(c1) == std::tolower(c2);
}
};
int main() {
std::string str = "Hello World!";
std::string target = "world";
// 使用自定义比较器进行查找
auto it = std::search(str.begin(), str.end(), target.begin(), target.end(), CaseInsensitiveCompare());
if (it != str.end()) {
std::cout << "Found!" << std::endl;
} else {
std::cout << "Not Found!" << std::endl;
}
return 0;
}
```
上述代码中,我们定义了一个自定义比较器CaseInsensitiveCompare,它实现了不区分大小写的比较。然后在调用search函数时,将该比较器作为第五个参数传入,从而实现了不区分大小写的查找。
阅读全文