memcmp()

Побайтово сравнить два буфера

Прототип:

#include <string.h>
int memcmp( const void *s1,
const void *s2,
size_t length );

Аргументы:

s1
s2
Указатели на сравниваемые буферы.
length
Размеры сравниваемых областей внутри буферов.

Библиотека:

libc

Описание:

Функция memcmp() сравнивает length байт буфера s1, с length байт буфера s2.

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

<0
Объект, на который указывает s1, меньше объекта, на который указывает s2.
0
Объект, на который указывает s1, равен объекту, на который указывает s2.
>0
Объект, на который указывает s1, больше объекта, на который указывает s2.


Note: Ненулевое значение соответствует результату сравнения первого отличающегося символа в обоих буферах, преобразованного к unsigned char.

Примеры:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main( void )
{
char buffer[80];
int retval;
strcpy( buffer, "World" );
retval = memcmp( buffer, "hello", 5 );
if ( retval < 0 )
{
printf( "Less than\n" );
} else
if ( retval == 0 )
{
printf( "Equal to\n" );
} else {
printf( "Greater than\n" );
}
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out Less than

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

memccpy(), memchr(), memcpy(), memicmp(), memmove(), memset()




Предыдущий раздел: Описание API системной библиотеки