memcmp, wmemcmp
Compara los caracteres de dos búferes.
int memcmp(
const void *buf1,
const void *buf2,
size_t count
);
int wmemcmp(
const wchar_t * buf1,
const wchar_t * buf2,
size_t count
);
Parámetros
buf1
Primer búfer.buf2
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 |
buf1 es menor que buf2 |
0 |
buf1 es idéntica a buf2 |
> 0 |
buf1 es mayor que buf2 |
Comentarios
Compara los primeros caracteres count de buf1 y buf2 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
Rutina |
Encabezado necesario |
---|---|
memcmp |
<memory.h> o <string.h> |
wmemcmp |
<wchar.h> |
Para obtener información adicional de compatibilidad, vea 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" );
}
Resultados
Compare '1234567890123456789' to '1234567890123456789':
First is equal to second.
Compare '1,2' to '1,2':
int_arr1 is equal to int_arr2.
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.