要按升序排序字符串数组,我使用:
int cmp(const void *p, const void *q) {
char* const *pp = p;
char* const *qq = q;
return strcmp(*pp, *qq);
}
然后将其实现为qsort,如下所示:
qsort(a, sizeof(a)(sizeof(a[0]), sizeof(a[0]), cmp);
你如何按降序排序?
答案 0 :(得分:5)
一种快速简便的方法是在返回之前将strcmp()
的结果乘以-1。
int cmp(const void *p, const void *q) {
char* const *pp = p;
char* const *qq = q;
return -strcmp(*pp, *qq);
}
答案 1 :(得分:3)
只需返回否定结果(-strcmp(*pp, *qq)
)。