字符串忽略大小写比较 C++写法
时间: 2023-09-09 21:11:59 浏览: 148
可以使用C++ STL库中的`std::tolower`函数将字符串转换为小写形式,然后再比较两个字符串是否相等。以下是一个示例代码:
```c++
#include <iostream>
#include <string>
#include <algorithm> // for std::transform
bool compareIgnoreCase(const std::string& str1, const std::string& str2) {
if (str1.size() != str2.size()) {
return false;
}
std::string str1Lower, str2Lower;
std::transform(str1.begin(), str1.end(), std::back_inserter(str1Lower), ::tolower);
std::transform(str2.begin(), str2.end(), std::back_inserter(str2Lower), ::tolower);
return str1Lower == str2Lower;
}
int main() {
std::string str1 = "Hello, World!";
std::string str2 = "hello, world!";
if (compareIgnoreCase(str1, str2)) {
std::cout << "The two strings are equal (ignoring case)." << std::endl;
} else {
std::cout << "The two strings are not equal (ignoring case)." << std::endl;
}
return 0;
}
```
在上面的代码中,`compareIgnoreCase`函数将两个字符串转换为小写形式,然后进行比较。`std::transform`函数可以将一个字符串中的每个字符转换为另一个字符,这里使用了`::tolower`函数进行转换。最后比较两个转换后的字符串是否相等。
阅读全文