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