#include<stdio.h>
#include<string.h>
void main()
{
void swap(char*p1,char*p2);
char*sp1,*sp2,*sp3;
char str1[70],str2[70],str3[70];
printf("请输入三行字符串:\n");
gets(str1);
gets(str2);
gets(str3);
sp1=str1,sp2=str2,sp3=str3;
if(strcmp(str1,str2)>0)
swap(sp1,sp2);
if(strcmp(str2,str3)>0)
swap(sp2,sp3);
if(strcmp(str1,str2)>0)
swap(sp1,sp2);
printf("字符串由小到大的顺序是:\n");
puts(sp1);
puts(sp2);
puts(sp3);
}
void swap(char*p1,char*p2)
{
char j;
j=*p1;
*p1=*p2;
*p2=j;
}
//输出后只是字符串首字母互换了 肿么回事?
这此是换了,可是交换以后 最长的不是在最后一个 而是在中间,是因为 stycmp函数本身的原因?还是说我自己哪错了? 求解,谢谢
追答strcmp比较不是看长度的,而是看ascii码的大小的比如 baa就大于aaaaaaaaa
你要是按长度排的话用strlen