Menu
Coddy logo textTech

Сравнение строк

Часть раздела Основы путешествия по C++ на Coddy — урок 22 из 74.

В C++ сравнение строк можно выполнить несколькими способами. Поскольку std::string является классом, он имеет перегруженные операторы, которые делают сравнение строк интуитивно понятным и простым.

Самый распространенный способ сравнения строк — использование операторов сравнения (==, !=, <, >, <=, >=):

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

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (чувствительно к регистру)
bool result3 = (str1 != str3);  // true

Вы также можете использовать метод compare(), который возвращает 0, если строки равны, отрицательное целое число, если первая строка лексикографически меньше, и положительное целое число, если она больше. Обратите внимание, что точное значение зависит от реализации — оно не обязательно равно -1 или 1:

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

cout << str2.compare(str1) << endl; 
// Positive (b comes after a)

cout << str2.compare(str3) << endl;
// Negative (b comes before c)

cout << str2.compare(str2) << endl;
// 0 (equal strings)

Шпаргалка

В C++ вы можете сравнивать строки, используя операторы сравнения или метод compare().

Использование операторов сравнения:

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

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (case-sensitive)
bool result3 = (str1 != str3);  // true

Использование метода compare():

Возвращает 0, если строки равны, <0, если первая строка лексикографически меньше, и >0, если больше:

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

cout << str2.compare(str1) << endl; // Positive (b comes after a)
cout << str2.compare(str3) << endl; // Negative (b comes before c)
cout << str2.compare(str2) << endl; // 0 (equal strings)

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы