сортировать массив структур по значению атрибута - PullRequest
2 голосов
/ 26 мая 2010

У меня есть задача на C сортировать структуру с помощью qsort

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

};
typedef struct user User;

пользователи будут храниться в массиве из 25 элементов

но как мне отсортировать их по имени?

1 Ответ

7 голосов
/ 26 мая 2010

В этом случае это довольно просто, поскольку 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);

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...