Содержание | Глава 14

Функция memcmp

#include <string.h>
int memcmp(const void *buf1, const void *buf2, size_t count);

Функция memcmp() сравнивает первые count символов массивов, адресуемых параметрами buf1 и buf2.

Функция memcmp() возвращает целое значение, которое интерпретируется следующим образом.

ЗначениеРезультат сравнения
Меньше нуляbuf1 меньше buf2
Нульbuf1 равен buf2
Больше нуляbuf1 больше buf2

Пример

Данная программа выдает результат сравнения двух своих аргументов, которые задаются в командной строке.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int outcome, len, l1, l2;

  if(argc!=3) {
    printf("Неверно задано число аргументов.");
    exit(1);
  }

  /* определение длины более короткой строки */
  l1 = strlen(argv[1]);
  l2 = strlen(argv[2]);
  len = l1 < l2 ? l1:l2;

  outcome = memcmp(argv[1], argv[2], len);
  if(!outcome) printf("Равны");
  else if(outcome<0) printf("Первый меньше второго.");
  else printf("Первый больше второго.");

  return 0;
}

Зависимые функции

memchr() memcpy() strcmp()
Содержание | Глава 14