原型:extern int strcmp(char *s1,char * s2);
用法:#include <string.h>
功能:比较字符串s1和s2。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
实际上,字符串的比较是比较字符串中各对字符的ASCII码。
首先比较两个串的第一个字符,若不相等,则停止比较并得出大于或小于的结果;
如果相等就接着 比较第二个字符然后第三个字符等等。如果两上字符串前面的字符一直相等,像"abcd"和"abcde" 那样,
前四个字符都一样, 然后比较第 五个字符, 前一个字符串"abcd"只剩下结束符'/0',
后一个字符串"abcde"剩下'e','/0'的ASCII码小于'e'的ASCII 码,所以得出了结果。
因此无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果。 举例:
// strcmp.c
#include <stdlib.h> #include <stdio.h>
#include <string.h>
int main()
{
char *s1="Hello, World!";
char *s2="Hello, BeiJing!";
int r;
r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
return EXIT_SUCCESS;
}
|