Menu
Coddy logo textTech

Comparaison de chaînes

Fait partie de la section Fondamentaux du Journey C++ de Coddy — leçon 22 sur 74.

En C++, la comparaison de chaînes de caractères peut se faire de plusieurs manières. Puisque std::string est une classe, elle possède des opérateurs surchargés qui rendent la comparaison de chaînes intuitive et simple.

La manière la plus courante de comparer des chaînes de caractères est d'utiliser des opérateurs de comparaison (==, !=, <, >, <=, >=) :

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (sensible à la casse)
bool result3 = (str1 != str3);  // true

Vous pouvez également utiliser la méthode compare(), qui renvoie 0 si les chaînes sont égales, un entier négatif si la première chaîne est lexicographiquement plus petite, et un entier positif si elle est plus grande. Notez que la valeur exacte dépend de l'implémentation — elle n'est pas nécessairement -1 ou 1 :

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; 
// Positif (b vient après a)

cout << str2.compare(str3) << endl;
// Négatif (b vient avant c)

cout << str2.compare(str2) << endl;
// 0 (chaînes égales)

Aide-mémoire

En C++, vous pouvez comparer des chaînes de caractères en utilisant des opérateurs de comparaison ou la méthode compare().

Utilisation des opérateurs de comparaison :

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // vrai
bool result2 = (str1 == str3);  // faux (sensible à la casse)
bool result3 = (str1 != str3);  // vrai

Utilisation de la méthode compare() :

Retourne 0 si les chaînes sont égales, <0 si la première chaîne est lexicographiquement plus petite, >0 si elle est plus grande :

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; // Positif (b vient après a)
cout << str2.compare(str3) << endl; // Négatif (b vient avant c)
cout << str2.compare(str2) << endl; // 0 (chaînes égales)

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux