1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include <stdio.h>
#include <string.h>
#include <stdlib.h>
// La fonction permettant de comparer (selon ma vision personnelle) deux mots
int cmp_trucs(const void *t1, const void *t2) {
// La fonction va comparer chaque mot à partir de leur second caractère (le premier ne sera donc pas pris en compte dans la comparaison)
return strcmp(*(char**)t1+1, *(char**)t2+1);
}
int main() {
char *mots[]={"pierre", "paul", "jacques", "mathieu", "bartholomé", "judas", "et les autres...", NULL};
char **pt;
size_t i;
// Premier affichage de démo
fputs("Avant tri:\n", stdout);
for (pt=mots, i=1; *pt != NULL; pt++, i++)
printf("mot %lu: [%s]\n", i, *pt);
// Le tri
qsort(mots, 7, sizeof(char*), cmp_trucs);
// Affichage du tableau trié
fputs("Après tri:\n", stdout);
for (pt=mots, i=1; *pt != NULL; pt++, i++)
printf("mot %lu: [%s]\n", i, *pt);
} |
Partager