小编Der*_*rek的帖子

使用qsort()对包含字符串的结构的指针进行排序

我不确定这是否可以与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);
}
Run Code Online (Sandbox Code Playgroud)

c pointers qsort

5
推荐指数
2
解决办法
3588
查看次数

标签 统计

c ×1

pointers ×1

qsort ×1