Trie Alphabetique [c c++]
Résolu/Fermé
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
-
9 oct. 2007 à 01:22
Utilisateur anonyme - 2 janv. 2009 à 14:47
Utilisateur anonyme - 2 janv. 2009 à 14:47
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 ?
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. - Guide
- Liste déroulante excel - Guide
- Code ascii de a - Guide
- Clé windows 8 - Guide
- Identifiant et mot de passe - Guide
10 réponses
mamiemando
Messages postés
33333
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
31 octobre 2024
7 800
18 oct. 2007 à 19:50
18 oct. 2007 à 19:50
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
killeur
Messages postés
112
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
14 mars 2008
20
9 oct. 2007 à 02:18
9 oct. 2007 à 02:18
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
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
16
9 oct. 2007 à 02:19
9 oct. 2007 à 02:19
j'ai bien chercher mais j'ai pas trouver alors je vien ici car cest mon dernier espoir.
merci qunad meme.
merci qunad meme.
killeur
Messages postés
112
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
14 mars 2008
20
9 oct. 2007 à 02:26
9 oct. 2007 à 02:26
si ce n'est pas dans l'immédiat je pourrai regarder dans mes anciens cours, j 'ai l'impression que je l'ai deja fait cet exo lol
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
16
9 oct. 2007 à 02:27
9 oct. 2007 à 02:27
a oui ce serait cool.
merci
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
killeur
Messages postés
112
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
14 mars 2008
20
9 oct. 2007 à 02:37
9 oct. 2007 à 02:37
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
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
16
9 oct. 2007 à 02:37
9 oct. 2007 à 02:37
ok
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
16
20 oct. 2007 à 00:57
20 oct. 2007 à 00:57
merci beaucoup
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
16
11 oct. 2007 à 23:46
11 oct. 2007 à 23:46
up
killeur
Messages postés
112
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
14 mars 2008
20
12 oct. 2007 à 11:58
12 oct. 2007 à 11:58
mer**** j'ai caremment oublié, désolé, je vais voir ça ce WE
James56
Messages postés
161
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
1 avril 2022
16
18 oct. 2007 à 17:40
18 oct. 2007 à 17:40
up