memcmp
, wmemcmp
Vergleicht Zeichen in zwei Puffern.
Syntax
int memcmp(
const void *buffer1,
const void *buffer2,
size_t count
);
int wmemcmp(
const wchar_t * buffer1,
const wchar_t * buffer2,
size_t count
);
Parameter
buffer1
Erster Puffer.
buffer2
Zweite Puffer.
count
Anzahl der zu vergleichenden Zeichen. (Vergleicht Bytes für memcmp
, Breitzeichen für wmemcmp
).
Rückgabewert
Der Rückgabewert gibt die Beziehung zwischen den Puffern an.
Rückgabewert | Beziehung der ersten count Zeichen von buf1 und buf2 |
---|---|
< 0 | buffer1 kleiner als buffer2 |
0 | buffer1 identisch mit buffer2 |
> 0 | buffer1 größer als buffer2 |
Hinweise
Vergleicht die ersten count
Zeichen von buffer1
und buffer2
und gibt einen Wert zurück, der die Beziehung angibt. Das Zeichen eines Rückgabewerts ungleich Null ist das Zeichen des Unterschieds zwischen dem ersten unterschiedlichen Wertpaar in den Puffern. Die Werte werden als unsigned char
für memcmp
und als wchar_t
für wmemcmp
interpretiert.
Anforderungen
Routine | Erforderlicher Header |
---|---|
memcmp |
<memory.h> oder <string.h> |
wmemcmp |
<wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Alle Versionen der C-Laufzeitbibliothek.
Beispiel
// 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.
Siehe auch
Pufferbearbeitung
_memccpy
memchr
, wmemchr
memcpy
, wmemcpy
memset
, wmemset
strcmp
, wcscmp
_mbscmp
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l