РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
179 of 815 menu

Функция strcmp

Функция strcmp сравнивает две C-строки (строки в стиле языка C, то есть массивы символов, завершающиеся нулевым символом '\0') и возвращает целое число, показывающее результат сравнения. В первый параметр мы передаем первую строку, а во второй - вторую строку. Сравнение происходит посимвольно до первого несовпадающего символа или до конца одной из строк.

Возвращаемое значение:

0 - если строки полностью совпадают.

Меньше 0 - если первая строка лексикографически меньше второй (первый несовпадающий символ в первой строке имеет меньшее значение).

Больше 0 - если первая строка лексикографически больше второй (первый несовпадающий символ в первой строке имеет большее значение).

Синтаксис

int strcmp(const char* str1, const char* str2);

Пример

Давайте сравним две одинаковые строки:

#include <iostream> #include <cstring> using namespace std; int main() { const char* str1 = "abcde"; const char* str2 = "abcde"; int res = strcmp(str1, str2); cout << res << endl; return 0; }

Результат выполнения кода:

0

Пример

Давайте сравним строку "abc" со строкой "abcde". Первая строка короче, поэтому она лексикографически меньше:

#include <iostream> #include <cstring> using namespace std; int main() { const char* str1 = "abc"; const char* str2 = "abcde"; int res = strcmp(str1, str2); cout << res << endl; return 0; }

Результат выполнения кода:

-100

Пример

Давайте сравним строку "abcde" со строкой "abc". Первая строка длиннее, поэтому она лексикографически больше:

#include <iostream> #include <cstring> using namespace std; int main() { const char* str1 = "abcde"; const char* str2 = "abc"; int res = strcmp(str1, str2); cout << res << endl; return 0; }

Результат выполнения кода:

100

Пример

Давайте сравним строки, которые различаются в первом же символе. Символ 'b' имеет большее значение в таблице ASCII, чем 'a', поэтому строка "bcde" больше:

#include <iostream> #include <cstring> using namespace std; int main() { const char* str1 = "abcde"; const char* str2 = "bcde"; int res = strcmp(str1, str2); cout << res << endl; return 0; }

Результат выполнения кода:

-1

Пример

Давайте используем результат strcmp для проверки равенства строк в условии:

#include <iostream> #include <cstring> using namespace std; int main() { const char* str1 = "12345"; const char* str2 = "12345"; if (strcmp(str1, str2) == 0) { cout << "equal" << endl; } else { cout << "not equal" << endl; } return 0; }

Результат выполнения кода:

"equal"

Смотрите также

  • функция strncmp,
    которая сравнивает первые n символов двух строк
  • функция strcpy,
    которая копирует одну строку в другую
  • функция strlen,
    которая возвращает длину C-строки
  • метод compare,
    который сравнивает объекты std::string
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить