trier un tableau à 2 dimensions de caracteres - C - Programmation
Marsh Posté le 11-06-2005 à 13:39:22
louisaha a écrit : je possede un tableau comportant des noms de villes.
|
qsort().
C'est pas trivial, mais c'est puissant. Bien lire la doc (c'est standard). Entraine toi sur des tableaux plus simples (int, par exemple). Poste ton code si tu es bloqué.
Marsh Posté le 11-06-2005 à 13:44:43
oué alors qsort j'ai bien capté le principe, je l'ai utilisé correctement apparament puisque à la compilation pas d'erreur
mais ca trie pas mdrrr donc pas terrible.
voila ce que j'ai fait :
int compare (const void * a, const void * b)
{
return ( *(char**)a - *(char**)b );
}
qsort (Nom_ville, Nb_ville_graph, sizeof(char*), compare);
avec
char ** Nom_ville;
int Nb_vile_graph; //qui est mon nombre de ville au total
mais ca trie pas ....
Marsh Posté le 11-06-2005 à 13:51:38
louisaha a écrit : oué alors qsort j'ai bien capté le principe, je l'ai utilisé correctement apparament puisque à la compilation pas d'erreur
|
Non. Il faut utiliser strcmp() qui est fait pour ça.
D'autre part, il faut faire attention à la définition du tableau (char à 2 dimensions, pointeurs sur char... Il faut être précis, car l'appel de qsort() en dépend...)
Marsh Posté le 11-06-2005 à 14:00:39
hummmm que veux tu dire par la definition du tableau ...
je vois pas non plus ce qui va changer avec strcmp car je pensais que c'etait pas mal ce que j'avais fait lol
Marsh Posté le 11-06-2005 à 14:23:20
louisaha a écrit : hummmm que veux tu dire par la definition du tableau ... |
char a[12][34]; |
ou
char *a[12]; |
etc.
Citation : je vois pas non plus ce qui va changer avec strcmp<...> |
Tu veux bien faire une comparaison de chaines ? Alors strcmp(), c'est tout. Relis ton livre de C...
Marsh Posté le 11-06-2005 à 12:44:05
Bonjour,
je possede un tableau comportant des noms de villes.
char Nom_ville[150][50];
je voudrais trier ce tableau de villes par ordre alphabétique.
Quelqu'un aurait il une idée pour m'aider car je galere à mort la sans y arriver.
Merci d'avance
pea
<exemple>
j'ai : paris,chartres,marseille,pau
et je voudrais : chartres,marseille,paris,pau