Trie Alphabetique [c c++]
Résolu
James56
Messages postés
161
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ?
- Comment trier par ordre alphabétique sur excel - Guide
- Code ascii - Guide
- Clé windows 8 - Guide
- Liste déroulante excel - Guide
- Trousseau mot de passe iphone - Guide
10 réponses
Il faut utiliser qsort après avoir défini une relation d'ordre (ici l'ordre alphabétique).
Exemple : http://www.idris.fr/data/cours/lang/c/c_tp/exo16.c
En C cette relation d'ordre s'appelle strcmp, il est inutile de la recoder
En C++ c'est encore plus facile car c'est l'opérateur < sur les std::string. Le container std::set permet d'ordonner des objets (par défaut avec <, sinon avec une autre relation d'ordre définie dans un foncteur).
Je te donne la version C++ comme ça ce sera pour toi l'occasion de (re)voir un peu comment la STL marche (ifstream, set, string, iterator...) :
Je prépare ensuite le fichier texte plop.txt :
Bonne chance
Exemple : http://www.idris.fr/data/cours/lang/c/c_tp/exo16.c
En C cette relation d'ordre s'appelle strcmp, il est inutile de la recoder
En C++ c'est encore plus facile car c'est l'opérateur < sur les std::string. Le container std::set permet d'ordonner des objets (par défaut avec <, sinon avec une autre relation d'ordre définie dans un foncteur).
Je te donne la version C++ comme ça ce sera pour toi l'occasion de (re)voir un peu comment la STL marche (ifstream, set, string, iterator...) :
#include <iostream> #include <fstream> #include <set> int main(){ const char *filename = "plop.txt"; // Ici je ne précise pas de relation d'ordre ce sera // donc l'opérateur < qui sera utilisé std::set<std::string> names; // Lire le fichier { std::string line; std::ifstream ifs(filename); if(!ifs){ std::cerr << "can't open [" << filename << ']' << std::endl; return EXIT_FAILURE; } while(std::getline(ifs,line)){ names.insert(line); } ifs.close(); } // Ecrire les éléments de "names". Ils sont déjà triés // comme je veux, ie avec l'opérateur < de la classe // std::string. Il suffit donc de parcourir cet ensemble { std::set<std::string>::const_iterator names_it (names.begin()), names_end(names.end()); for(;names_it != names_end;++names_it){ const std::string & cur_name = *names_it; std::cout << cur_name << std::endl; } } return EXIT_SUCCESS; }
Je prépare ensuite le fichier texte plop.txt :
(mando@aldur) (~) $ cat plop.txt tintin asterix ali mentaire ali baba thorgal lucky lukeEnsuite on compile et on exécute (ici sous linux) :
(mando@aldur) (~) $ g++ -W -Wall plop.cpp (mando@aldur) (~) $ ./a.out ali baba ali mentaire asterix lucky luke thorgal tintin
Bonne chance
désolé ça fait un bon moment que je n'ai pas fait de C, utilise:"file *f" et puis"sort" ou "strcmp" je ne sais plus, je te laisse te débrouillé pour l'algorithme lol^^
regarde dans le site ya surement quelques trucs pour t'éclairer, ou regarde sur google, car c'est un exercice qu'on demande a tout les étudiants j'ai l'impression
regarde dans le site ya surement quelques trucs pour t'éclairer, ou regarde sur google, car c'est un exercice qu'on demande a tout les étudiants j'ai l'impression
j'ai bien chercher mais j'ai pas trouver alors je vien ici car cest mon dernier espoir.
merci qunad meme.
merci qunad meme.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok je te tiens au courant demain avant une heure du mat,
si tu as des précisions sur l'exercice, dis le maintenant, s'il ya des contraintes, des conditions etc
si tu as des précisions sur l'exercice, dis le maintenant, s'il ya des contraintes, des conditions etc