不区分大小写的字符串比较C ++

这个问题在这里已经有了答案:

  • C ++中不区分大小写的字符串比较[已关闭] 31个回答

  • strncasecmp

    strcasecmp()函数执行字符串s1和s2的逐字节比较,忽略字符的大小写。 如果找到s1,它将分别返回小于,等于或大于零的整数,使其小于,匹配或大于s2。

    strncasecmp()函数是类似的,除了它比较不超过n个字节的s1和s2 ...


    通常我所做的只是比较一个较低版本的字符串,例如:

    if (foo.make_this_lowercase_somehow() == "stack overflow") {
      // be happy
    }
    

    我相信boost会内置小写转换,所以:

    #include <boost/algorithm/string.hpp>    
    
    if (boost::algorithm::to_lower(str) == "stack overflow") {
      //happy time
    }
    

    你为什么不把小事情做成小写,然后比较一下?

    降低()

      int counter = 0;
      char str[]="HeLlO wOrLd.n";
      char c;
      while (str[counter]) {
        c = str[counter];
        str[counter] = tolower(c);
        counter++;
      }
    
      printf("%sn", str);
    
    链接地址: http://www.djcxy.com/p/75181.html

    上一篇: Case insensitive string comparison C++

    下一篇: C# 6 null conditional operator check for .Any()?