我不确定这是否可以用 qsort 来做,因为我想要排序的(指向结构的指针数组)不是我要比较的(字符串)。
这是我的程序的精简版(假设在我们调用 qsort() 之前所有学生数据都在核心中,n 是要排序的记录数):
struct student {
char lname[NAMESIZE + 1];
char fname[NAMESIZE + 1];
short mid;
short final;
short hmwks;
};
int cmp(const void *, const void *);
int
main(int argc, char **argv)
{
int n;
struct student *data[MAX];
qsort(data, n, sizeof(struct student *), cmp);
return 0;
}
int
cmp(const void *p0, const void *p1)
{
return strcmp((*(struct student *) p0).lname,
(*(struct student *) p1).lname);
}