第1个回答 2020-07-06
字符串比较,可采用循环遍历字符串,用对应位置的指针所指向的字符进行比较,当相等时,循环,遇到不等或其中一个字符串结束时,结束循环,返回对应指针的对应的字符的差值,根据差值判断两个字符串的大小:
返回值大于0,则前串大,
返回值小于0,则前串小,
返回值等于0,两个字符串相等。
参考代码:
#include<stdio.h>
int stringcompare(char *a,char *b)
{
while( *a && *a == *b )
{
a++;
b++;
}
return *a-*b ;
}
int main()
{
int ret;
char a[10];
char b[10];
printf("请输入字符串a: ");
gets(a);
printf("请输入字符串b: ");
gets(b);
ret=stringcompare(a,b);
if ( ret > 0 )
printf("a>b\n");
else if ( ret < 0 )
printf("a<b\n");
else
printf("a=b\n");
system("pause");
return 0;
}
运行结果:
请输入字符串a:
abcde
请输入字符串b:
acd
a<b
请输入字符串a:
acd
请输入字符串b:
abcde
a>b
请输入字符串a:
abc
请输入字符串b:
abc
a=b
第2个回答 推荐于2018-03-07
#include<stdio.h>
int stringcompare(char *a,char *b);
main()
{
char a[10];
char b[10];
printf("请输入字符串");
gets(a);
gets(b);
printf("%d",stringcompare(a,b));
}
int stringcompare(char *a,char *b)
{
do{
if(*a<*b) return -1;
else if(*a>*b) return 1;
a++;
b++;
}while(*a&&*b);
return 0;
}本回答被网友采纳
第3个回答 2009-05-05
#include<stdio.h>
int stringcompare(char *a,char *b)
{
int ret = 0;
while(!(ret = *a - *b) && *b)
a++, b++;
if(ret<0)ret = -1;
else if(ret>0)ret = 1;
return ret;
}
void main()
{
char a[10];
char b[10];
printf("请输入字符串\n");
gets(a);
gets(b);
int k = stringcompare(a,b);
if(k>0)printf("%s>%s\n",a,b);
else if(k==0)printf("%s=%s\n",a,b);
else printf("%s<%s\n",a,b);
}