求高手看看我的代码哪里错了//////输入5个字符串,按由小到大的顺序输出(用指针做)

//////输入5个字符串,按由小到大的顺序输出(用指针做)

#include <iostream>
#include<string>
using namespace std;
void px(char *p[],int n)
{
char *a=p[0];
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(strcmp(p[i],p[j])>0)
{
a=p[i];
p[i]=p[j];
p[j]=a;
}
}
}
}
void main()
{
char *str[5];
for(int i=0;i<5;i++)
cin>>str[i];
px(str,5);
for(int i=0;i<5;i++)
cout<<str[i]<<" ";
}

#include <iostream>
#include<string>
using namespace std;
void px(char p[][20],int n)
{
char a[20];
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(strcmp(p[i],p[j])>0)
{
strcpy(a,p[i]);//对字符串用拷贝函数
strcpy(p[i],p[j]);
strcpy(p[j],a);
}
}
}
}
void main()
{
int i;
char a[5][20];//长度不过20
for(i=0;i<5;i++)
{
cin>>a[i];
}
px(a,5);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
}
指针其实蛮不好控制,也是难点。。追问

我正好想不用指针写呢
十分感谢你,,弱弱问一下,只能用strcpy么不可以直接复制么,,

温馨提示:答案为网友推荐,仅供参考
相似回答