按属性值排序结构数组

时间:2010-05-25 20:22:19

标签: c sorting attributes struct

我在C中有一个任务,使用qsort

对结构进行排序
struct user {
    enum SEX{m, f} sex;
    char name[32];
    char phonenr[32];

};
typedef struct user User;

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

但我如何对名字之类的东西进行排序?

1 个答案:

答案 0 :(得分:7)

在这种情况下,它非常简单,因为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);
祝你好运!