怎样用qsort对二维字符数组排序?

如题所述

/*举个示例吧,可以参考改写以适应自己的需要。*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>

#define M 5
#define N 20

int cmp(const void *,const void *);
int main()
{
char name[M][N];//M个一维字符数组构成的二维字符数组,维数可以改
int i;
for(i=0;i<M;i++)
{
scanf("%s",name[i]);//输入部分
}
qsort(name,M,sizeof(name[0]),cmp);//排序
for(i=0;i<M;i++)
{
printf("%s\n",name[i]);//输出
}
getch();
return 0;
}

/*回调用的比较函数,其实比较的是一位字符数组(字符串)*/
int cmp(const void *p,const void *q)
{
return strcmp((char *)p,(char *)q); //现在就可以正确排序了、、、
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-14
你的二维数组?要举个例。是不是一维的字符串数组呀
相似回答