Программирование на C и C++

Онлайн справочник программиста на C и C++

memcmp, memicmp

int memcmp(const void *buf1, const void *buf2, size_t count)

int memicmp(const void *buf1, const void *buf2, size_t count)

int far_memcmp(const void far *buf1, const void far *buf2, size_t count)

int far_memicmp(const void far *buf1, const void far *buf2, size_t count)

Прототип: 
Описание: 

Функция memcmp() не опре­делена стандартом ANSI С.

Функция memcmp() сравнивает первые count символов массивов, на которые указывают buf1 и buf2. Сравнение производится лексикографически. Функция memcmp() возвращает целое число, которое интерпретируется, как указано ниже:

Число Значение
Меньше 0 buf1 меньше, чем buf2
0 buf1 равен buf2
Больше 0 buf1 больше, чем buf2

Функция memicmp() идентична memcmp(), но при сравнении букв она игнорирует разницу в регистрах.

Функции fmemcmp() и fmemicmp() являются FAR-версиями этих функций.

Пример: 
Следующая программа показывает результат сравнения двух аргументов своей командной строки:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int outcome;
size_t len, l1,  l2;
/* получение длины */
len = (l1=strlen(argv[1]))<(l2=strlen(argv[2])) ? 11:12;
outcome = memcmp(argv[1], argv[2], len);
if (!outcome) printf("equal");
else if (outcome<0) printf("First less than second.\n");
else printf("First greater than second\n");
return 0;
}