memcmp
, wmemcmp
Compara los caracteres de dos búferes.
Sintaxis
int memcmp(
const void *buffer1,
const void *buffer2,
size_t count
);
int wmemcmp(
const wchar_t * buffer1,
const wchar_t * buffer2,
size_t count
);
Parámetros
buffer1
Primer búfer.
buffer2
Segundo búfer.
count
Número de caracteres que se van a comparar. (Compara los bytes de memcmp
y los caracteres anchos de wmemcmp
).
Valor devuelto
El valor devuelto indica la relación entre los búferes.
Valor devuelto | Relación de los primeros caracteres count de buf1 y buf2 |
---|---|
< 0 | buffer1 es menor que buffer2 |
0 | buffer1 es idéntica a buffer2 |
> 0 | buffer1 es mayor que buffer2 |
Comentarios
Compara los primeros caracteres count
de buffer1
y buffer2
y devuelve un valor que indica la relación entre ellos. El signo de un valor devuelto distinto de cero es el signo de la diferencia entre el primer par de valores de los búferes. Los valores se interpretan como unsigned char
para memcmp
y como wchar_t
para wmemcmp
.
Requisitos
Routine | Encabezado necesario |
---|---|
memcmp |
<memory.h> o <string.h> |
wmemcmp |
<wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Bibliotecas
Todas las versiones de la biblioteca en tiempo de ejecución de C.
Ejemplo
// crt_memcmp.c
/* This program uses memcmp to compare
* the strings named first and second. If the first
* 19 bytes of the strings are equal, the program
* considers the strings to be equal.
*/
#include <string.h>
#include <stdio.h>
int main( void )
{
char first[] = "12345678901234567890";
char second[] = "12345678901234567891";
int int_arr1[] = {1,2,3,4};
int int_arr2[] = {1,2,3,4};
int result;
printf( "Compare '%.19s' to '%.19s':\n", first, second );
result = memcmp( first, second, 19 );
if( result < 0 )
printf( "First is less than second.\n" );
else if( result == 0 )
printf( "First is equal to second.\n" );
else
printf( "First is greater than second.\n" );
printf( "Compare '%d,%d' to '%d,%d':\n", int_arr1[0], int_arr1[1], int_arr2[0], int_arr2[1]);
result = memcmp( int_arr1, int_arr2, sizeof(int) * 2 );
if( result < 0 )
printf( "int_arr1 is less than int_arr2.\n" );
else if( result == 0 )
printf( "int_arr1 is equal to int_arr2.\n" );
else
printf( "int_arr1 is greater than int_arr2.\n" );
}
Compare '1234567890123456789' to '1234567890123456789':
First is equal to second.
Compare '1,2' to '1,2':
int_arr1 is equal to int_arr2.
Consulte también
Manipulación del búfer
_memccpy
memchr
, wmemchr
memcpy
, wmemcpy
memset
, wmemset
strcmp
, wcscmp
, _mbscmp
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l