我试图用这个函数比较两个字符串,不区分大小写。常量字符串不区分大小写比较
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
?
那么你为什么不只是使用一个临时要存储的值(tolower(* x))? – Marcus 2012-07-10 02:09:59
将数据复制到非常量字符数组中,将所有字符转换为小写字母。 – 2012-07-10 02:10:00
@Marcus我不允许将* x1或* x2更改为除const char – user1513475 2012-07-10 02:13:21