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;
}
#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;
}