我不确定使用qsort是否可以实现我的要求,因为我想要排序的是结构体指针数组,而我比较的却是字符串。
以下是程序摘要(假设在调用qsort()之前,所有学生数据都已存储在内存中,n是要排序的记录数):
以下是程序摘要(假设在调用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);
}