按属性值对结构数组排序 [英] sort a struct array by attribute value

查看:39
本文介绍了按属性值对结构数组排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在C中有一个任务,可以使用qsort对结构进行排序

Ive got a task in C to sort a struct by using qsort

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

};
typedef struct user User;

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

the users will be stored in a array of 25 elements

但是如何将它们按名称排序?

but how do i sort them on something like name ?

推荐答案

在这种情况下,这很简单,因为 strcmp qsort 可以很好地协同工作.试试:

In this case it's pretty easy, since strcmp works nicely with qsort. Try:

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);

祝你好运!

这篇关于按属性值对结构数组排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆