Accueil > Forum > > > > Tri d'un tableau de chaînes de caractères
Tri d'un tableau de chaînes de caractères
jeudi 20 avril 2006 à 21:35:24 |
Tri d'un tableau de chaînes de caractères

Manthis
|
Bonjour,
Je poste ce message car je n'arrive pas à trouver de solution à mon
problème. En fait j'ai un tableau de chaînes de caractères (un char **)
que je voudrais trier par ordre alphabétique.
Quelqu'un pourrait-il m'expliquer comment je peux faire ça?
Merci
|
|
jeudi 20 avril 2006 à 23:28:54 |
Re : Tri d'un tableau de chaînes de caractères

luhtor
|
Commence par faire une fonction qui te retourne la plus grande chaine (suivant l'ordre alphabétique) entre 2 chaines.
Apres, c'est trivial. Ca revient a trier un tableau d'entier, mais en
utilisant la fonction que tu viens de faire comme relation d'ordre.
Note qu'il faut juste réordonner l'autre des pointeurs, rien d'autre.
|
|
vendredi 21 avril 2006 à 00:29:12 |
Re : Tri d'un tableau de chaînes de caractères

zied86
|
tu peux utiluser la fonction "strcmp" qui compare deux chaine de caractere dans la bibliotheque <string.h>.
et voila un exemple de tri
for(i=(l-1);i>0;i=fin)/**l est le nombre d'element***/ {fin=0; for(j=0;j<i;j++) if(strcmp(livre[j+1],livre[j])<0) {fin=j; //permutation p=livre[j]; livre[j]=livre[j+1]; livre[j+1]=p; } }
Ellouze Zied
|
|
vendredi 21 avril 2006 à 08:11:17 |
Re : Tri d'un tableau de chaînes de caractères

gagah1
|
Si nombre d'élement est grand, utilise qsort(...) et strcmp(...) .
|
|
vendredi 21 avril 2006 à 11:40:33 |
Re : Tri d'un tableau de chaînes de caractères

Ombitious_Developper
|
Réponse acceptée !
#include "stdlib.h" #include "string.h"
int compare(const void *, const void *);
void Tri(char * Array[], unsigned int n) { qsort( (char **)Array, n, sizeof(char *), compare); return; }
int compare(const void * elem1, const void * elem2) { return strcmp( *(char **)elem1, *(char **)elem2); }
|
|
vendredi 21 avril 2006 à 12:08:26 |
Re : Tri d'un tableau de chaînes de caractères

Manthis
|
Merci beaucoup Ombitious_Developper c'est exactement ce que je cherchais: un tri de tableau en deux fonctions et en plus en utilisant l'algorithme qsort.
Encore mille merci et je suis vraiment bluffé par le nombre de gens qui ont répondu, merci à tous...
|
|
vendredi 21 avril 2006 à 17:42:10 |
Re : Tri d'un tableau de chaînes de caractères

Zootella
|
Pourquoi des strcmp ? suffit de comparer le premier caractère..
|
|
vendredi 21 avril 2006 à 19:16:35 |
Re : Tri d'un tableau de chaînes de caractères

gagah1
|
qsort( (char **)Array, n, sizeof(char *), compare);
ATTENTION: sizeof(char*) retourne 4 octets. Vaut mieux remplacer par la taille maximale de la chaine.
|
|
samedi 22 avril 2006 à 00:01:08 |
Re : Tri d'un tableau de chaînes de caractères

Ombitious_Developper
|
Salut :
1- Pour Zootella les comparaisons avec la fonctions "strcmp" sont nécessaires, voire obligatoires. En effet un seul caractère ne permet pas de décider si une chaine est supérieure à une autre - Pensez au cas où les deux chaines commencent par la même lettre - Comment faire ? il faut faire des strcmp pour résoudre cette problème. Tant qu'il égalité on passe aux prochaines lettres.(on doit comparer toutes les chaînes)
2- Pour gagah1 On a tableau de chaines de caractère, càd de type char ** : c'est un tableau contenant les adresses des chaines de caractères sauvegardées quelque part dans la mémoire. Donc il doit contenir des adresses Pourqu' une case accueille une adresse on réserve 4 octes qui n'est autre que sizeof(char *).
Personnellement je préfère sizeof(char *) au lieu de 4 car c'est plus général et plus générique Dieu seul sait si l'adresse d'un pointeur va être toujours 4 octets.
|
|
samedi 22 avril 2006 à 09:57:50 |
Re : Tri d'un tableau de chaînes de caractères

gagah1
|
J'ai pas remarqué que tu utilises un tableau de pointeur: char* array[];
|
|
Cette discussion est classée dans : tableau, tri, caractères, chaînes
Répondre à ce message
Sujets en rapport avec ce message
tri dans un tableau a 2 dimension en cpp [ par vivo95 ]
Bonjours, je rechercherai comment faire pour faire un tri dans un tableau a 2 dimension, je sais le faire dans un tableua a 1 dim mais la je seche.Mer
Affichage d'une chaîne de caractères [ par kalf2000 ]
bonjour,j'ai un petit souci, je réussit à récupérer à partir d'un fichier texte une chaîne de caractère et à la mettre dans un tableau de caractère (c
Tri endroit précis dans Tableau [ par MissSixty ]
Salut ! Une question toute simple pour ceux qui connaissent qsort....Voilà je désire trier un tableau à partir de la ligne i que je lui fournis). La l
Stockage de caractères dans une tableau ... [ par icedreamer ]
Bonjour !Je continue sur ma lancée ...Comment dois-je faire pour stocker dans un tableau les données lues d'un fichier ?Code : char s[10] = ""; FI
Recherche tri d'un tableau d'adresse objet [ par rtnode ]
Bonjour à tous,je soumets un problème qui me semble à priori trés banal mais dont je n'ai pas trouvé de bonne solution.Dans nombre de cas, je dispose
Tri de tableau [ par firemax ]
Bonjour Je me demandais juste si il existais en C des fonctions de tri de tableau ou si il fallait la faire nous meme Car si il faut la faire nous
Tri d'un tableau à 2 dimensions [ par vao ]
salut tout le monde,J'ai un problème de taille, enfin pour moi qui débute en C++. Je dois trier un tableau en fonction de la valeur d'une colonne et s
D'une AnsiString à un Tableau de char [ par sevenace ]
Bonjour à tous, Mon AnsiString provient d'un EditBox. Je récupère le nombre de caractères comme ça: AnsiString chaine = EditChaine->Text; i
Problème de Noobs [ par hippyz ]
Alors voilà mon problème j'ai un tableau qui contient des caractères déjà prédifinis. Et j'ai un deuxiéme tableau dans lequel je mets des caractères q
Help.... probleme avec un programme de tri de char [ par ratp ]
Es ce que vous pouvez m'aider. j'ai réaliser un programme qui normalement doit permettre de trier les caracteres. mais sa ne marche pas. merci de m'ai
Livres en rapport
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
ERREUR DE POINTEURERREUR DE POINTEUR par africanwinners
Cliquez pour lire la suite par africanwinners CLISTCTRLCLISTCTRL par dorras7
Cliquez pour lire la suite par dorras7
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|