不区分大小写的字符串比较C ++
这个问题在这里已经有了答案:
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