gpt4 book ai didi

c - C 中的 strcasecmp 返回 156 而不是 0,有什么想法吗?

转载 作者:行者123 更新时间:2023-12-04 12:13:00 25 4
gpt4 key购买 nike

我有以下代码:

printf("num: %d\n", strcasecmp(buf, "h\n"));

当我尝试插入不同的字母时,我得到以下结果:

a: -7
g: -1
i: 1
j: 2
h: 156
H: 156

当 buf 等于 Hh 时,strcasecmp 不应该返回 0 吗?任何想法为什么它返回 156?我需要弄清楚如何检查用户输入的是 H 还是 h

谢谢!

编辑:我正在通过以下方式读取 buf:读取(0, buf, MAXBUFLEN);

最佳答案

printf("num: %d\n", strcasecmp(buf, "h"));

如果要与 hH 进行比较,为什么 \n 放在最后?


main(){
char *s = "hH";
printf("%d\n", strcasecmp(s, "Hh"));
}

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"));
}

h
h
  0 10

我在上面的例子中输入了h

此外,如果您想比较固定数量的字符,请使用 strncasecmp

关于c - C 中的 strcasecmp 返回 156 而不是 0,有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com