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

2025-06-29 13:13:47
推荐回答(2个)
回答1:

/*举个示例吧,可以参考改写以适应自己的需要。*/
#include
#include
#include
#include

#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 {
scanf("%s",name[i]);//输入部分
}
qsort(name,M,sizeof(name[0]),cmp);//排序
for(i=0;i {
printf("%s\n",name[i]);//输出
}
getch();
return 0;
}

/*回调用的比较函数,其实比较的是一位字符数组(字符串)*/
int cmp(const void *p,const void *q)
{
return strcmp((char *)p,(char *)q); //现在就可以正确排序了、、、
}

回答2:

你的二维数组?要举个例。是不是一维的字符串数组呀