zxcloser 发表于 2019-11-17 17:07:59

关于strcmp

#include<stdio.h>
#include<string.h>
int main()
{
        char a[] = "abc";
        char b[] = "Abc";
        printf("%d", strcmp(a, c));
        return 0;
}
为啥翁恺讲课可以输出32,这个不应该输出1吗?

_2_ 发表于 2019-11-17 17:13:17

@zltzlt 他发错版块了啊

zltzlt 发表于 2019-11-17 17:14:16

_2_ 发表于 2019-11-17 17:13
@zltzlt 他发错版块了啊

没有

zxcloser 发表于 2019-11-17 17:15:07

解决问题啊,兄弟们,别发这种无关紧要的东西{:10_250:}

jackz007 发表于 2019-11-17 18:19:55

本帖最后由 jackz007 于 2019-11-17 23:30 编辑

      strcmp("abc" , "Abc") 会从第一个字符开始,比较两个字符串中的字符,如果相同,就继续比较下一个字符,直至比出差异或比完两个字符串中的所有字符为止。比较方法就就是把两个字符的 ASCII 编码相减。'a' 和 'A' 的编码分别是 97 和 65,二者相减的差是个固定值 32。同时,这个数值也是每个小写字母与对应大写字母编码值的系统差,就是说,不光 'a' - 'A' 是 32,'z' - 'Z' 也是 32。根据这种数量关系,可以对字母字符进行大小写转换。I

caihuawuhen 发表于 2019-11-17 20:32:06

不同的编译器输出可能不一样
页: [1]
查看完整版本: 关于strcmp