我正在尝试使用此函数比较两个字符串,不区分大小写。
int strcasecmp(const char *x1, const char *x2);
我的副本是正确的,但是区分大小写的部分给我带来了一些麻烦,因为 const 是一个常量,因此是只读的,导致这些失败:
*x1 = (tolower(*x1)); // toupper would suffice as well, I just chose tolower
*x2 = (tolower(*x2)); // likewise here
两个字符都必须保持const
,否则我认为这会起作用...
所以我的问题是:有没有办法在保持 char
-strings const
的同时忽略大写?
最佳答案
你可以使用一个临时的 char 变量:
char c1 = tolower(*x1);
char c2 = tolower(*x2);
if (c1 == c2)
...
关于常量字符串的不区分大小写的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11405705/