// 这样写就OK啦。
int cmp(const void *a, const void *b)
{
char *aa = (char *) a;
char *bb = (char *) b;
return strcmp(aa,bb);
}
// const void *a是表示一个指向const void的指针,可以指向任意的类型,但是不能修改。这就需要将其强制转化。
// 因为是针对char型的二维数组,也就是说你排序的时候是想将字符串排序。
// 所以就应该转化成char*的指针,但是C字符串是没办法直接使用类似于-,+,<=,>=,==等操作符的,所以这个时候就需要调用strcmp函数,该函数位于
string.h头文件里面。假如你想对整型的一维数组排序,就应该转换成(int*)啦。结构体的排序也是类似,就强制转换成指向结构体的指针,然后里面想要比较的对象相减即可。
// ACM的题目里面也是经常会用到排序的。C++的话用sort函数。C的话能用qsort()就用qsort()。写多了自然就会了。
温馨提示:内容为网友见解,仅供参考