strcmp是C语言的一个库函数它的用途是比较俩个字符串是否相同。
strcmp需要先注意的点:
1.俩个字符串均不能为空。
2.如果数组1比数组2的值(ASCII)小,则返回-1;
3.如果数组1比数组2的值(ASCII)大,则返回1;
4.如果数组1与数组2的值(ASCII)相等,则返回0;
下面是具体的代码实现:
#include <stdio.h>
#include <assert.h>
int my_strcmp(const char* str1, const char* str2)
{
//断言判断这个俩个数组是否为空
//为空直接报错
assert(str1 && str2);
//比较
//传过来的是地址,所以我们需要解引用来获得它的值
while (*str1 == *str2)
{
if (*str1 == '\0')
return 0;
str1++;
str2++;
}
if (*str1 < *str2)
return -1;
else
return 1;
}
int main()
{
int ret = 0;
const char* p1 = "abbc";
const char* p2 = "abbcd";
ret = my_strcmp(p1, p2);
printf("ret = %d\n", ret);
return 0;
}