这个函数是比较两个字符串的大小,比较的方法是用对应字符串上的ascll码值来比较
这个函数它是会返回一个整形,你可以理解为第一个数和第二个数相比较不过这个比较的是,对应位置上的字母会有大小写之分的
比如说比较abcd和abce
你可以理解为这个两个相比较,它就是d和e相比较,但是很明显D的ascll值要比E的acsll值要大,所以说它会返回一小于0的,相反的话,它也会等于或者说是大于
#include<string.h>
int main()
{
const char arr[] = "abcd";
const char arr2[] = "abce";
int ret = strcmp(arr, arr2);
printf("%d", ret);
return 0;
}
这个是结果
通过结果我们能知道他们对应位上的这个d的值要比d的值小,所以说它返还了一个负数
我们可以总结出来一个规律是第一个数减第二个数,所以说如果说大于就是第一个字符大,小余0就是第一个小
我们来看一下这个函数它的内部长什么样子,模拟一下实现
#include <stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
int ret = 0;
assert(str2 != NULL);
assert(str1 != NULL);
while (*str1 == *str2)
{
if (*str1 == '\0')
return 0;
str1++;
str2++;
}
return *str1 - *str2;
}