Функция memcmp

Прототип функции memcmp:

int memcmp( const void * memptr1, const void * memptr2, size_t num );

Заголовочный файл:

Название Язык
string.h С
cstring С++

Описание

Функция сравнивает первые num байтов блока памяти указателя memptr1 с первыми num байтами блока памяти memptr2. Возвращаемое значение 0 если блоки равны, и значение отличное от 0, если  блоки не равны.

Параметры:

  • memptr1
    Указатель на первый блок памяти.
  • memptr2
    Указатель на второй блок памяти.
  • num
    Количество байтов для сравнения.

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

Возвращает значение, информирующее о результате сравнения содержимого блоков памяти:

  • Нулевое значение указывает, что содержимое обоих блоков памяти равны.
  • Значение больше нуля говорит о том, что первый блок памяти — memptr1 больше, чем блок памяти — memptr2, и значение меньше нуля свидетельствует об обратном. Функция memcmp начинает сравнивать по одному байту и как только будут найдены первые неодинаковые символы, функция проанализирует числовой код этих символов. Чей код окажется больше, тот блок памяти и будет считаться больше.

Пример: исходный код программы

//пример использования функции memcmp

#include <iostream>
#include <cstring>

int main()
{
  char str1[256] = "";
  char str2[256] = "";

  std::cout << "Введите строку: ";
  std::cin >> str1;

  std::cout << "Введите другую строку: ";
  std::cin >> str2;

  int n = memcmp( str1, str2, 256 );        // сравниваем первые 256 байт указанных блоков памяти

  if ( n > 0 )
      std::cout << str1 << " > " << str2;
  else
      if ( n < 0 )
          std::cout << str1 << " < " << str2;
      else
         std::cout << str1 << " == " << str2;
  return 0;
}

Пример работы программы

CppStudio.com
Введите строку: отладка
Введите другую строку: компиляция
отладка > компиляция
Автор: admin
Дата: 31.08.2012
Поделиться:

Комментарии

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.