Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Porovná znaky ve dvou vyrovnávacích pamětech.
Syntaxe
int memcmp(
const void *buffer1,
const void *buffer2,
size_t count
);
int wmemcmp(
const wchar_t * buffer1,
const wchar_t * buffer2,
size_t count
);
Parametry
buffer1
První vyrovnávací paměť.
buffer2
Druhá vyrovnávací paměť.
count
Počet znaků, které mají být porovnány. (Porovnává bajty pro memcmp, široké znaky pro wmemcmp).
Vrácená hodnota
Návratová hodnota označuje vztah mezi vyrovnávacími pamětmi.
| Vrácená hodnota | Vztah prvních count znaků a buf1buf2 |
|---|---|
| < 0 | buffer1 méně než buffer2 |
| 0 | buffer1 shodný s buffer2 |
| > 0 | buffer1 větší než buffer2 |
Poznámky
Porovná první count znaky buffer1 a buffer2 vrátí hodnotu, která označuje jejich vztah. Znaménko nenulové návratové hodnoty je znamení rozdílu mezi prvním párem různých hodnot ve vyrovnávacích pamětech. Hodnoty jsou interpretovány jako unsigned char pro memcmp, a jako wchar_t pro wmemcmp.
Požadavky
| Rutina | Požadovaný hlavičkový soubor |
|---|---|
memcmp |
<memory.h> nebo <string.h> |
wmemcmp |
<wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Všechny verze knihovny runtime jazyka C.
Příklad
// 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.
Viz také
Manipulace s vyrovnávací pamětí
_memccpy
memchr, wmemchr
memcpy, wmemcpy
memset, wmemset
strcmp, , wcscmp_mbscmp
strncmp, wcsncmp, , _mbsncmp_mbsncmp_l