C语言中strcmp()函数作用是比较字符串,但比较的字符串不同,返回值有什么变化?

一、比较相同的字符串

printf("%d\n", strcmp("A", "A"));

strcmp()比较"A"和"A",字符串相同,ASCII码值相同,返回0。

二、比较不同的字符串

printf("%d\n", strcmp("A", "B"));

strcmp()比较"A"和 "B",字符串不同,"A"和在"B"之前,"A"的ASCII值小于"B",返回-1。

printf("%d\n", strcmp("B", "A"));

strcmp()比较"B"和 "A",字符串不同,"B"和在"A"之前,"B"的ASCII码值大于"A",返回1。

三、比较不同长度的字符串

printf("%d\n", strcmp("abcz", "abc"));

strcmp()比较"abcz"和 "abc",开始的几个字符相同,最后一个字符不同(即:z和空字符的比较),返回1。strcmp()比较的是所有字符,并非字母,字母z的ASCII码值大于空字符,所以返回的是正值。

四、总结

stcmp()比较字符串,可以说是通过ASCII码值进行字母的比较。

(1)两个字符串相同,ASCII码值相同,返回值是0

(2)第1个字符串在第2个字符串之前,说明第1个字符串ASCII值小于第2个字符串,返回负值

(3)第1个字符串在第2个字符串之后。说明第1个字符串ASCII值大于第2个字符串,返回正值

举报/反馈

大懒水母

307获赞 78粉丝
万能的人生目标。。。
关注
0
0
收藏
分享