我有以下代码:
printf("num: %d\n", strcasecmp(buf, "h\n"));
Run Code Online (Sandbox Code Playgroud)
当我尝试插入不同的字母时,我得到以下结果:
a: -7
g: -1
i: 1
j: 2
h: 156
H: 156
Run Code Online (Sandbox Code Playgroud)
strcasecmp当buf等于H或时,不应该返回0 h?任何想法为什么它返回156?我需要弄清楚如何检查用户是否输入H或h.
谢谢!
编辑:我正在以下列方式阅读buf:
read(0, buf, MAXBUFLEN);
printf("num: %d\n", strcasecmp(buf, "h"));
Run Code Online (Sandbox Code Playgroud)
为什么\n在最后,如果你想与h或比较H?
main(){
char *s = "hH";
printf("%d\n", strcasecmp(s, "Hh"));
}
Run Code Online (Sandbox Code Playgroud)
0
read()还存储空白.所以,如果您正在使用read,请与"h \n"进行比较.
main(){
char *buf = malloc(sizeof(char)*10);
read(0, buf, 10);
printf("%s %d %d\n", buf, strcasecmp(buf, "h\n"), strcasecmp(buf, "h"));
}
Run Code Online (Sandbox Code Playgroud)
ħ
ħ
0 10
我进入h上述案件.
此外,strncasecmp如果要比较固定数量的字符,请使用.
| 归档时间: |
|
| 查看次数: |
3723 次 |
| 最近记录: |