题目:用指针写出strcmp函数。
思考:此题目和用指针写出strcpy函数一样。使用递归的思想,函数功能就是当s1和s2相等时,函数返回值为0,如果s1>s2时,函数返回值为正整数,s1<s2时,函数返回值为负整数。(返回值的大小是遇到的第一个不同的字符的ASCII码的差)
代码:
#include<stdio.h>
#define N 100
int strcmp(char *s1, char *s2)
{
while(*s1 == *s2)
{
if(*s1 == '\0')
{
return 0;
}
s1++;
s2++;
}
return *s1 - *s2;
}
int main()
{
char s1[N];
char s2[N];
gets(s1);
gets(s2);
strcmp(s1,s2);
printf("%d\n",strcmp(s1,s2));
return 0;
}
代码结果: