【问题标题】:sort a struct array by attribute value按属性值对结构数组进行排序
【发布时间】:2011-02-23 21:25:35
【问题描述】:

我在 C 语言中有一个任务是使用 qsort 对结构进行排序

struct user {
    enum SEX{m, f} sex;
    char name[32];
    char phonenr[32];

};
typedef struct user User;

用户将存储在一个由 25 个元素组成的数组中

但我如何按名称对它们进行排序?

【问题讨论】:

  • 你知道如何使用qsort吗?

标签: c sorting attributes struct


【解决方案1】:

在这种情况下,这很容易,因为strcmp 可以很好地与qsort 配合使用。试试:

int compareUser(const void *v1, const void *v2)
{
    const User *u1 = v1;
    const User *u2 = v2;
    return strcmp(u1->name, u2->name);
}

然后像这样使用它:

qsort(array, 25, sizeof(User), compareUser);

祝你好运!

【讨论】:

  • 编辑关闭警告,严格正确总是一个好主意。
猜你喜欢
  • 2020-04-24
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多