C中不区分大小写的标准字符串比较

前端之家收集整理的这篇文章主要介绍了C中不区分大小写的标准字符串比较前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Case-insensitive string comparison in C++ [closed]31个
> Case insensitive string comparison C++ 5个 @H_403_3@void main() { std::string str1 = "abracadabra"; std::string str2 = "AbRaCaDaBra"; if (!str1.compare(str2)) { cout << "Compares" } }

我怎样才能做到这一点?基本上使上述情况不敏感.相关问题
我用Google搜索并在这里

http://msdn.microsoft.com/en-us/library/zkcaxw5y.aspx

有一个不区分大小写的方法String :: Compare(str1,str2,Bool).问题是这与我的工作方式有何关系.

解决方法

您可以创建谓词函数并在std :: equals中使用它来执行比较: @H_403_3@bool icompare_pred(unsigned char a,unsigned char b) { return std::tolower(a) == std::tolower(b); } bool icompare(std::string const& a,std::string const& b) { if (a.length()==b.length()) { return std::equal(b.begin(),b.end(),a.begin(),icompare_pred); } else { return false; } }

现在你可以简单地做:

@H_403_3@if (icompare(str1,str)) { std::cout << "Compares" << std::endl; }

猜你在找的C&C++相关文章