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

Функция memcmp

Функция memcmp сравнивает два блока памяти побайтово и возвращает целое число. Она принимает три параметра: указатель на первый блок памяти, указатель на второй блок памяти и количество байт для сравнения. Функция возвращает 0, если блоки идентичны, отрицательное число, если первый блок меньше второго, и положительное число, если первый блок больше второго.

Синтаксис

int memcmp(const void* ptr1, const void* ptr2, size_t count)

Пример

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

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

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

0

Пример

Давайте сравним две строки, которые отличаются в третьем символе:

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

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

-1

Функция вернула отрицательное число, так как символ 'c' в первой строке меньше символа 'x' во второй.

Пример

Давайте сравним только первые три байта двух строк, которые отличаются в четвёртом символе:

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

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

0

Функция вернула 0, так как первые три байта строк идентичны, а отличие находится за пределами сравниваемого диапазона.

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

  • функция strcmp,
    которая сравнивает две строки
  • функция strncmp,
    которая сравнивает первые n символов двух строк
  • функция memcpy,
    которая копирует блок памяти
  • функция memset,
    которая заполняет блок памяти заданным значением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить