Fonction qui permet de faire le tri alphabétique en c++
williamWant
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous. J'ai un exercice qui me demande d'entrer les noms et de les classer en ordre alphabétique. J'ai fait presque tout le travail mais suis bloquer au niveau du classement. J'ai essayé avec strcmp mais apparament il n'existe pas en c++
A voir également:
- Fonction qui permet de faire le tri alphabétique en c++
- Comment trier par ordre alphabétique sur excel - Guide
- Fonction si et - Guide
- Logiciel tri photo - Guide
- Triez ce tableau par ordre alphabétique des prénoms ✓ - Forum Excel
- Fonction miroir - Guide
2 réponses
Bonjour,
Pour comparer des chaînes de caractères en C++ (des
Pour faire des comparaisons particulières (tableau de char avec un terminateur, comparaisons en tenant compte des caractères accentués de la langue courante), on peut utiliser :
strcmp()c'est du C, donc est tout à fait utilisable en C++. Mais la fonction est à éviter.
Pour comparer des chaînes de caractères en C++ (des
std::string), il suffit d'utiliser les opérateurs :
if ( str1 < str2 )fonctionne très bien.
Pour faire des comparaisons particulières (tableau de char avec un terminateur, comparaisons en tenant compte des caractères accentués de la langue courante), on peut utiliser :
// accès à la facet de gestion des chaînes de la locale courante auto colc = std::use_facet<std::collate<char>>( std::locale("") ); if ( colc.compare(s1.c_str(), s1.c_str()+s1.size(), s2.c_str(), s2.c_str()+s2.size()) < 0 ) { // correspond à if ( str1 < str2 ) en tenant compte de la locale courante // presque équivalent à if ( strcmp( s1.c_str() , s2.c_str() ) < 0 )