1.strcmp()函数的调用形式
整形变量=strcmp(字符串1,字符串2);
2.功能
从左至右依次比较两个字符串中的对应字符,比较字符ASCII码值的大小。直到比较到不同字符为止,或者比较到其中一个字符串结束为止。根据比较的大小关系,该函数的返回值有3种情况。
注:通常会返回1,0,-1,是由于windows系统上的编译器设定的原因
#include<stdio.h>
#include<string.h>
int main()
{
char *s1 = "abcd";
char *s2 = "abbb";
printf("%d\n", strcmp(s1, s2));
return 0;
3.模拟实现strcmp函数
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//由于strcmp并不修改它的任何一个参数,所以并不存在溢出字符数组的危险,所以用const修饰
int my_strcmp(char const *s1, char const *s2)
{
assert(s1 != NULL);
assert(s2 != NULL);
int ret = 0;
while (!(ret = (*s1 - *s2)) && *s1)//如果两者相等且不为'\0'
{
s1++;
s2++;
}
if (ret < 0)
ret = -1;
else if (ret>0)
ret = 1;
return ret;
}
int main()
{
char *s1 = "abcd";
char*s2 = "abbb";
printf("%d ", my_strcmp(s1, s2));
return 0;
}