Trie Alphabetique [c c++]
Résolu
James56
Messages postés
173
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'ai besoin d'aide concernan un notion que je ne connait pas : le trie alphabetique :
en fait j'ai un fichier.txt qui posede plusieur ligne (une centaine) sur chaque ligne il y a un prenom et je voudrai les trier par ordre alphabetique.
je ne sais pas du tout comment mi prendre.
quelqun peu m'aider ?
j'ai besoin d'aide concernan un notion que je ne connait pas : le trie alphabetique :
en fait j'ai un fichier.txt qui posede plusieur ligne (une centaine) sur chaque ligne il y a un prenom et je voudrai les trier par ordre alphabetique.
je ne sais pas du tout comment mi prendre.
quelqun peu m'aider ?
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
- Clé windows 8 - Guide
- Code ascii - 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