Sdílet prostřednictvím


memcmp, wmemcmp

Porovná znaky ve dvou vyrovnávacích pamětech.

int memcmp( 
   const void *buf1, 
   const void *buf2, 
   size_t count 
); 
int wmemcmp( 
   const wchar_t * buf1, 
   const wchar_t * buf2, 
   size_t count 
);

Parametry

  • buf1
    První vyrovnávací paměť.

  • buf2
    Druhá vyrovnávací paměť.

  • count
    Počet znaků, které mají být porovnány. (Bajty porovná funkce memcmp, široké znaky porovná funkce wmemcmp).

Vrácená hodnota

Návratová hodnota označuje vztah mezi vyrovnávacími pamětmi.

Návratová hodnota

Vztah prvních znaků count proměnných buf1 a buf2

< 0

buf1 menší než buf2

0

buf1 shodné s buf2

> 0

buf1 větší než buf2

Poznámky

Porovná počet znaků podle proměnné count v proměnných buf1 a buf2 a vrátí hodnotu, která určuje jejich vzájemný vztah.Znaménko nenulové návratové hodnoty ke znamení rozdílu mezi prvním párem různých hodnot ve vyrovnávacích pamětech.Tyto hodnoty jsou interpretovány jako typ unsigned char pro funkci memcmp a jako typ wchar_t pro funkci wmemcmp.

Požadavky

Rutina

Požadované záhlaví

memcmp

<memory.h> nebo <string.h>

wmemcmp

<wchar.h>

Další informace o kompatibilitě naleznete v tématu Kompatibilita.

Knihovny

Všechny verze knihoven modulu run-time 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" );
}

Výsledek

Compare '1234567890123456789' to '1234567890123456789':
First is equal to second.
Compare '1,2' to '1,2':
int_arr1 is equal to int_arr2.

Ekvivalent v rozhraní .NET Framework

Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Zacházení s vyrovnávací pamětí

_memccpy

memchr, wmemchr

memcpy, wmemcpy

memset, wmemset

strcmp, wcscmp, _mbscmp

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l