我在C中有一个任务,使用qsort
对结构进行排序struct user {
enum SEX{m, f} sex;
char name[32];
char phonenr[32];
};
typedef struct user User;
用户将存储在25个元素的数组中
但我如何对名字之类的东西进行排序?
答案 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);
祝你好运!