Fonction qui permet de faire le tri alphabétique en c++

williamWant Messages postés 1 Statut Membre -  
Dalfab Messages postés 720 Statut Membre -
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 720 Statut Membre 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