1、使用C++提供的忽略大小写的比较函数
使用到的函数不是C++标准库中的函数,windows和Linux下各有不同的实现,所以使用宏定义进行处理实现跨平台
stricmp是windows下提供的函数
strcasecmp是Linux下提供的函数,使用时需要包含头文件strings.h
string strSrc = "Hello, World";
string strDes = "Hello, world";
#ifdef __LINUX__
if (strcasecmp(strSrc.c_str(), strDes.cStr()) == 0)
{
cout << strSrc << " 等于 " << strDes << endl;
}
else
{
cout << strSrc << " 不等于 " << strDes << endl;
}
#else
if (stricmp(strSrc.c_str(), strDes.c_str()) == 0)
{
cout << strSrc << " 等于 " << strDes << endl;
}
else
{
cout << strSrc << " 不等于 " << strDes << endl;
}
#endif
2、使用toupper函数或者tolower函数将字符串统一转换为大写或小写然后比较
这种方法不用考虑跨平台的问题,因为使用的是C++标准库中的函数实现的。
#include <algorithm>
string strTest = "use test.";
std::transform(strTest.begin(), strTest.end(), strTest.begin(), std::toupper);
//strcmp