按属性值对结构数组排序 [英] sort a struct array by attribute value
本文介绍了按属性值对结构数组排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在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屋!
查看全文