指针的问题!!
程序目的是将3个字符串按从小到大顺序排列,但下面的程序在输入3个字符串以后,得到的结果第2个字符串出现2次,不知道哪出问题了main()
{char str1[40],str2[40],str3[40],*p1,*p2,*p3;
char swap();
p1=str1;
p2=str2;
p3=str3;
printf("Input three lines:\n");
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0) swap(p1,p2);{ swap(str1,str2)
if(strcmp(str1,str3)>0) swap(p1,p3);{ 这是改成swap(str1,str3)结果就是对的??为什么?
if(strcmp(str2,str3)>0) swap(p2,p3);{ swap(str2,str3)
printf("Now,the order is:\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
}
char swap(char *p1,char *p2)
{char *p;
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}