我知道strcmp会返回......
大于零的值表示第一个字符 不匹配在str1中的值大于在str2中的值;而且价值更低 比零表示相反。
但这些正面或负数意味着什么呢?例如2是什么意思?
答案 0 :(得分:9)
该标准并未告诉您具体数字的含义。每个实现都允许返回它喜欢的任何内容,只要它在适当时返回更大,相等或小于零。
答案 1 :(得分:7)
总之,没什么。它通常取决于功能的实现方式,但您不能依赖它。
例如,在他们在这里讨论的实现(第3篇文章):http://compsci.ca/v3/viewtopic.php?t=24383它返回第一个不同字符(的数字表示)之间的差异,即strcmp("ab","ad")
将返回{{1 }}
或者,对于此实施,http://en.wikibooks.org/wiki/C_Programming/Strings#The_strcmp_function相同的调用将返回-2
。
答案 2 :(得分:7)
大于零的值表示第一个字符 不匹配在str1中的值大于在str2中的值
和
2> 0
所以
2表示第一个字符 不匹配在str1中的值大于在str2中的值
答案 3 :(得分:2)
只返回整数的符号才有意义。虽然在大多数实现中它通常为-1,0和+1(分别),但绝不会依赖于确切的值。