[求助]实现字符串strcmp的功能,求完整的算法思路
当字符串a="a",字符串b="ab"的时候,我这样做就出现了错误,应该这么处理呢?
#include <stdio.h>
#include <string.h>
int mystrcmp(char a[],char b[])
{
int i=0,r;
while (a[i]!='\0'&&b[i]!='\0')
{
if (a[i]>b[i])
{
return r=1;
}
if (a[i]<b[i])
{
return r=-1;
}
i++;
}
return r=0;
}
void main()
{
char a[20],b[20];
printf("请输入字符串a:");
gets(a);
printf("请输入字符串b:");
gets(b);
int r;
r=mystrcmp(a,b);
printf("字符串比较结果为:%d\n",r);
}
----------------解决方案--------------------------------------------------------
//用指针做比较简单些:
int mystrcmp(char *s1,char *s2)
{
while(*s1!='\0' && *s1==*s2)
{ s1++;s2++; }
return *s1-*s2;
}
----------------解决方案--------------------------------------------------------