C语言:用指针实现字符串大小的比较,应该怎样做呢?

#include<stdio.h>
void stringcompare(char *a,char *b);
main()
{

char a[10];
char b[10];
printf("请输入字符串");
gets(a);
gets(b);
stringcompare(a,b);
printf("%s",b);
}

void stringcompare(char *a,char *b)
{ if(*a==*b)
{a++;
b++;}

}

我只能写出这种框架啦

字符串比较,可采用循环遍历字符串,用对应位置的指针所指向的字符进行比较,当相等时,循环,遇到不等或其中一个字符串结束时,结束循环,返回对应指针的对应的字符的差值,根据差值判断两个字符串的大小:

    返回值大于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

温馨提示:答案为网友推荐,仅供参考
第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);
}