在C++中,字符串的比较是区分大小写的。如果要进行不区分大小写的字符串比较,可以使用std::equal
函数,并提供自定义的比较函数对象。
以下是一个示例代码:
#include<iostream>
#include<string>
#include<algorithm>
bool compare_ignore_case(char a, char b) {
return std::tolower(a) == std::tolower(b);
}
int main() {
std::string s1 = "Hello, World!";
std::string s2 = "hello, world!";
if (std::equal(s1.begin(), s1.end(), s2.begin(), compare_ignore_case)) {
std::cout << "Strings are equal (ignoring case)"<< std::endl;
} else {
std::cout << "Strings are not equal (ignoring case)"<< std::endl;
}
return 0;
}
在这个示例中,我们定义了一个compare_ignore_case
函数,它接受两个字符作为参数,并返回它们是否相等(不区分大小写)。然后,我们使用std::equal
函数来比较两个字符串,并传递compare_ignore_case
函数作为比较函数对象。如果两个字符串相等(不区分大小写),则输出"Strings are equal (ignoring case)",否则输出"Strings are not equal (ignoring case)"。
领取专属 10元无门槛券
手把手带您无忧上云