2. 字符串排序:在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排

急求啊 ,必须用指针啊,谢谢啊,急急急急!!!!!!

第1个回答  2012-04-30
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
/*根据字符串的长度排序,由长到短*/
void sort(char *p[N]);

void main()
{
char str[N][50];/*保存字符串的二维数组,每个字符串的最大长度是50*/
int i;
char *p[N];/*声明指针数组,保存二维数组每一行的地址*/
printf("请输入%d个字符串:\n",N) ;
for(i=0;i<N;i++)
gets(str[i]);/*初始化二维数组*/
for(i=0;i<N;i++)
{ /*初始化指针数组*/
p[i]=str[i];
}
sort(p);
system("pause");
}
void sort(char *p[N])
{
int i,j;
char *t;
printf("由长到短排序:");
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{
if(strlen(p[i])<strlen(p[j]))
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}
for(i=0;i<N;i++)
puts(p[i]);/*输出排序后的结果*/
}本回答被提问者采纳