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   -
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:

2 réponses

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

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 )
2
Utilisateur anonyme
 
0