高手来! 这段代码错在什么些地方
关于输出字符串从小到大顺序的程序
#include <stdio.h>
#include <string.h>
void swap(char*,char*)
main()
{
char a[80],b[80],c[80];
scanf( "%s%s%s ",&a,&b,&c);
if(a> b)swap(a,b);
if(b> c)swap(b,c);
printf( "%s\n%s\n%s\n ",a,b,c);
}
void swap(char *pstr1,char *pstr2)
{
char *p;
p=pstr1;
pstr1=pstr2;
pstr2=p;
}
[解决办法]
#include <stdio.h>
#include <string.h>
void swap(char*,char*)
main()
{
char a[80],b[80],c[80];
scanf( "%s%s%s ",&a,&b,&c);
if(a> b)swap(a,b); // 字符串的比较用strcmp,而不能直接用> , <, == 等来比较
if(b> c)swap(b,c);
printf( "%s\n%s\n%s\n ",a,b,c);
}
void swap(char *pstr1,char *pstr2)
// 交换时,要用变量的地址来交换,这里的变量即是字符串的首地址,即在这里要实现这个功能,用字符串首地址的地址来进行交换:
void swap(char **pstr1,char **pstr2)
{
char *p;
p=pstr1;
pstr1=pstr2;
pstr2=p;
}
[解决办法]
if(a> b)//字符串不能这样比,这个比较两个指针的大小.字符串用strcmp函数比较.
[解决办法]
void swap(char *pstr1,char *pstr2)
{
char p[80];
strcpy(p, pstr1);
strcpy(pstr1, pstr2);
strcpy(pstr2, p);
}
[解决办法]
char a[80],b[80],c[80];
scanf( "%s%s%s ",&a,&b,&c);
============================
scanf( "%s%s%s ",a,b,c);