C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C中的std :: string是否有内置函数,当字符串可以是大写或小写时,按字母顺序比较两个字符串?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道对于C来说,如果两个词都是完全较低或完全是大写的话,那么基本的比较运算符就可以完成任务.我有一个字符串数组,字母可以从低到高不等.这是我可以使用的字符串的一个小问题:

“丰富的生活CH”

“新生活WMN MNSTRY”

“新生活大会”

我知道Java中存在函数String.compareToIgnoreCase().这个函数有C等价吗?

解决方法

我不知道标准库中的任何不区分大小写的函数,但您可以为std :: equal指定自定义谓词:
std::string a("Hello");
std::string b("HelLO");
std::cout << std::equal(a.begin(),a.end(),b.begin(),[] (const char& a,const char& b)
    {
        return (std::tolower(a) == std::tolower(b));
    });@H_262_15@ 
 

有关虑区域设置的解决方案,请参阅Case insensitive std::string.find().

#include <locale>

template<typename charT = std::string::value_type>
struct my_equal {
    my_equal( const std::locale& loc ) : loc_(loC) {}
    bool operator()(charT ch1,charT ch2) {
        return std::toupper(ch1,loc_) == std::toupper(ch2,loc_);
    }
private:
    const std::locale& loc_;
};

int main()
{
    std::string a("Hello");
    std::string b("HelLO");
    std::cout << std::equal(a.begin(),my_equal<>(std::locale()));
}@H_262_15@

大佬总结

以上是大佬教程为你收集整理的C中的std :: string是否有内置函数,当字符串可以是大写或小写时,按字母顺序比较两个字符串?全部内容,希望文章能够帮你解决C中的std :: string是否有内置函数,当字符串可以是大写或小写时,按字母顺序比较两个字符串?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。