DreamF 发表于 2020-5-9 14:24:51

c语言中的strcmp为什么只返回1,-1,0

为什么我用VS比较两个字符串,每次只返回1或者-1,0,不是应该返回两个值的差吗


printf("%d", strcmp("bcde", "bhde"));


结果:
-1

求解惑,谢谢

liuzhengyuan 发表于 2020-5-9 14:26:09

本帖最后由 liuzhengyuan 于 2020-5-9 14:27 编辑

strcmp -- 比较字符串

sunrise085 发表于 2020-5-9 15:04:04

官方文档的描述是
相等返回0,第一个字符串大则返回正值,第二个字符串大则返回负值,并没有说一定返回ASCII差值

返回值是什么,与编译器有关。
在VC中返回的是±1,而在TC中返回差值。

DreamF 发表于 2020-5-9 15:23:18

sunrise085 发表于 2020-5-9 15:04
官方文档的描述是
相等返回0,第一个字符串大则返回正值,第二个字符串大则返回负值,并没有说一定返回A ...

原来这样啊,谢谢

sunrise085 发表于 2020-5-9 15:36:33

DreamF 发表于 2020-5-9 15:23
原来这样啊,谢谢

不用客气,给个最佳就行~
页: [1]
查看完整版本: c语言中的strcmp为什么只返回1,-1,0