不调用#include<string.h>实现strcmp函的功能:
先说一下strcmp的功能,是一个字符串处理函数,是一个用于对两组字符串进行比较的函数,它的返回值是int类型。
例如:
int strcmp(char s1 , char s2)
char s1[ ] = "bbc";
char s2[ ] = "abc";
int ret = strcmp(char s1 , char s2);
因为b > a ,所以ret 等于1。
也就是把字符串 s1 和 s2 从首字符开始逐个字符的进行比较,直到某个字符不相同或者其中一个字符串比较完毕,出现'\0' 才停止比较。字符的比较为ASCII码的比较。
#include<stdio.h>
//
//自定义strcmp函数
int my_strcmp(char* a,char* b)
{
int i = 0;
while(*(a+i) != '\0' || *(b+i) != '\0')
{
if(*(a+i) > *(b+i))
return 1;
else if(*(a+i) < *(b+i))
return -1;
else
i++;
}
return 0;
}
int main()
{
printf("%d\n",my_strcmp("baaa","abcd"));//从第一个开始比较,若能得出结果就结束比较
printf("%d\n",my_strcmp("aaaa","aaab"));
printf("%d\n",my_strcmp("aaaa","aaa"));
printf("%d\n",my_strcmp("ccc","cccc"));
printf("%d\n",my_strcmp("qqqw","qqqw"));//相同输出0
return 0;
}
运行结果:
用strcmp函数可以得到相同结果。
#include<stdio.h>
#include<string.h>
//
//strcmp函数
int main()
{
printf("%d\n",strcmp("baaa","abcd"));//从第一个开始比较,若能得出结果就结束比较
printf("%d\n",strcmp("aaaa","aaab"));
printf("%d\n",strcmp("aaaa","aaa"));
printf("%d\n",strcmp("ccc","cccc"));
printf("%d\n",strcmp("qqqw","qqqw"));//相同输出0
return 0;
}
运行结果: