函数原型: int strcmp(const char *s1,const char * s2)
所在头文件:string.h
函数功能:对字符数组1中的字符串和字符数组2中的字符串进行比较。比较规则:按字符ASCII的大小自左向右逐个比较两个字符串的字符,直到出现不同的字符或遇到'\0'为止。若全部字符相同,则返回值为0;若串1>串2,则返回值为一个正数;若串1<串2,则返回值为一个负数。
模拟实现:
#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
assert(str1 && str2);
//比较
while(*str1 == *str2)
{
if(*str1 == '\0' || *str2 == '\0')
{
return 0;//相等
}
str1++;
str2++;
}
if(*str1 > *str2)
{
return 1;//大于
}
else
return -1;//小于
}
int main()
{
char arr1[] = "abc";
char arr2[] = "abb";
char arr3[] = "abcd";
char arr4[] = "abcd";
printf("%d\n", my_strcmp(arr1, arr2));
printf("%d\n", my_strcmp(arr3, arr4));
printf("%d\n", my_strcmp(arr1, arr3));
return 0;
}
运行截图: