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