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个字符串,返回正值。