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

Функция strncmp

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

Функция объявлена в заголовочном файле <cstring>. Сравнение выполняется до первого несовпадающего символа, до нулевого символа или до тех пор, пока не будет сравнено N символов. В отличие от функции strcmp, которая сравнивает строки целиком, strncmp позволяет ограничить количество сравниваемых символов.

Синтаксис

int strncmp(const char* str1, const char* str2, size_t num);

Пример

Давайте сравним первые 3 символа двух одинаковых строк:

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

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

0

Пример

Давайте сравним первые 3 символа двух разных строк. Так как символ 'c' меньше символа 'x', функция вернет отрицательное число:

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

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

-21

Пример

Давайте сравним только первые 2 символа строк, которые различаются начиная с третьего символа. Так как первые два символа совпадают, функция вернет 0:

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

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

0

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

  • функция strcmp,
    которая сравнивает две строки целиком
  • функция strncpy,
    которая копирует N символов одной строки в другую
  • функция strlen,
    которая возвращает длину C-строки
  • функция memcmp,
    которая сравнивает участки памяти
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить