按属性值排序结构数组

Spi*_*ire 2 c sorting attributes struct

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

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

};
typedef struct user User;
Run Code Online (Sandbox Code Playgroud)

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

但是我如何根据名字对它们进行排序呢?

Car*_*rum 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);
}
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

qsort(array, 25, sizeof(User), compareUser);
Run Code Online (Sandbox Code Playgroud)

祝好运!