2010-05-25 6 views
2

Ive a obtenu une tâche en C pour trier une struct en utilisant qsorttrier un tableau de struct par valeur d'attribut

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

}; 
typedef struct user User; 

les utilisateurs seront stockés dans un tableau de 25 éléments

mais comment faire de tri i eux sur quelque chose comme nom?

+1

Savez-vous comment utiliser qsort? –

Répondre

7

Dans ce cas, il est assez facile, puisque strcmp fonctionne bien avec qsort. Essayez:

int compareUser(const void *v1, const void *v2) 
{ 
    const User *u1 = v1; 
    const User *u2 = v2; 
    return strcmp(u1->name, u2->name); 
} 

utiliser ensuite comme ceci:

qsort(array, 25, sizeof(User), compareUser); 

Bonne chance!

+0

Edité pour fermer les avertissements, être strictement correct est toujours une bonne idée. –

Questions connexes