C++11是否引入了一种不区分大小写的字符串比较算法
Did C++11 introduce a case-insensitive string comparison algorithm?
刚刚在GCC 4.8上移到C++11,如果能从boost::iequals
移到STL,那就太好了。我在网间搜索了一下,但没有看到任何迹象表明std::iequals
或新的std::basic_string
方法在STL中原生地支持这一点。
如果C++11中不存在这种情况,那么自C++03以来,解决此问题的方法是否发生了变化(即不同的解决方案?),或者这里仍然首选boost?
提前谢谢
希望这能有所帮助!
没有本地字符串比较,但有了丰富的STL,您可以非常简单地编写自己的东西:
`
bool caseInsensitiveCmp(wstring str1, wstring str2)
{
if ( str1.size() != str2.size())
return false;
else
return (str1.empty() | str2.empty()) ?
false :
std::equal(str1.begin(), str1.end(),str2.begin(),
[](wchar_t a, wchar_t b)
{
return tolower(a) == tolower(b);
}
);
}`
第一个检查是防止std:equals在不同长度上进行比较。
相关文章:
- 使字母检查不区分大小写
- 如何执行不区分大小写的字符串比较?
- 函数中的切换大小写语句不会切换C++
- CMake 添加不区分大小写的源文件
- 提升program_option配置文件的不区分大小写的解析
- 如何提升Perl正则表达式匹配,支持区分大小写/不区分大小写
- 对字符串向量进行排序,但不区分大小写
- 比较最后一个字符,不区分大小写(带谓词?
- 如何创建一个程序来标识最长的子字符串回文,而不考虑字母大小写
- C Visual Studio代码不使用工作区中的单个文件夹编译
- 如何在交换机中将一个枚举值标记为不适当的大小写
- 在字符串的 boost::unordered_set 中使用 Lambda 函数 - 不区分大小写
- 程序在我的C++工作区中找不到头文件
- 开关大小写不调用其中的函数
- 为什么不区分大小写适用于 std::unordered_set的 std::hash 函数?
- 为什么我的代码在开关大小写中不起作用
- 比较字符串大小写不区分的简单方法是什么?
- 如何使字符串中的每个字母不区分大小写
- 不区分大小写的字符串
- Qt:如何在大小写不敏感模式下减去QString的两个QSet