【问题请教】c语言两个字符串比较大小的问题,不使用strcmp函数
题目:将两个字符串s1,s2比较,如果s1>s2,输出一个正数;s1<s2输出一个负数,s1=s2,输出0。输出的正数或负数的绝对值应是比较的两个字符串的ASCII码的差值。例如‘A'与'C'的ASCII的差值为2,因此输出为‘-2’,不能使用strcmp函数。
程序代码:int main()
{
char str1[80],str2[80];
int i=0,r;
puts("input string1:");
gets(str1);
puts("input string2:");
gets(str2);
while((str1[i]==str2[i])&&(str1[i]!='\0')) //如果两个对应字符相等,且两字符串都没有结束,则i++,继续判断下一个字符;
//否则,只要两个字符不相等,或者任意字符串已经结束,则不再进行下一个字符的判断。
{
i++;
}
if(str1[i]=='\0'&&str2[i]=='\0') //如果同时结束,则相等
{
r=0;
}
else
{
r=str1[i]-str2[i];
}
printf("result:%d.\n",r);
return 0;
}疑问:
while((str1[i]==str2[i])&&(str1[i]!='\0'))
我理解必须加上红色字体来判断字符串是否已经结束,但是这里为什么写的是str1,而不是str2呢?谢谢。






