发布网友 发布时间:2022-04-25 17:58
共1个回答
热心网友 时间:2023-07-14 20:36
if(s1>s2)这句有问题.s1和s2不表示字符串的内容,他俩表示字符串在内存中存储的首地址,所以if(s1>s2)的意思是
如果(字符串s1的首地址大于字符串s2的首地址)
正确的应该是:
#include"stdio.h"
int
f(char
*a,char
*b)
{
while(*a&&*b)
{
if(*a>*b)
return
1;
else
if(*a<*b)
return
-1;
else
++a,++b;
}
if(*a>*b)
return
1;
else
if(*a<*b)
return
-1;
else
return
0;
}
int
main()
{
char
a[100],b[100];
while(1)
{
gets(a);
gets(b);
if(f(a,b)>0)
printf("%s
is
bigger
than
%s.\n",a,b);
else
if(f(a,b)<0)
printf("%s
is
bigger
than
%s.\n",b,a);
else
printf("%s
is
the
same
with
%s.\n",a,b);
}
return
0;
}
木有测试,不过大体思路就是这个样子,将两个字符串中的字符一个一个比较,直到结尾('\0').