C语言标准库函数strcmp
strcmp(str1,str2)是用来比较两个字符串的,设这两个字符串为str1,str2,若str1=str2,则返回零;若str1< str2,则返回负数;若str1>str2,则返回正数。例如:abcd>abcc。
思路:把两个字符串一个一个进行比较,当两个字符串不一样时,直接减,当两个字符串相等时,直接输出0。
#include <stdio.h>
#include <assert.h>
int my_strcmp(const char* s1, const char* s2)
{
assert(s1 && s2);//确保指针有效性
while (*s1 == *s2)//从两字符串首地址元素开始比较
{
if (*s1 == '\0')
{
return 0;
}
s1++;
s2++;
}
return *s1 - *s2;//返回两元素的差值
}
int main()
{
char* p = "abcdef";
int ret = my_strcmp("abc", "abcdef");
printf("%d\n", ret);
return 0;
}
结果演示:
“abc”<“abcdef”,则返回一个负数。