Sdílet prostřednictvím


_memicmp, _memicmp_l

Porovná znaky ve dvou vyrovnávacích pamětích (nerozlišuje malá a velká písmena).

Syntaxe

int _memicmp(
   const void *buffer1,
   const void *buffer2,
   size_t count
);
int _memicmp_l(
   const void *buffer1,
   const void *buffer2,
   size_t count,
   _locale_t locale
);

Parametry

buffer1
První vyrovnávací paměť.

buffer2
Druhá vyrovnávací paměť.

count
Počet znaků

locale
Národní prostředí, které se má použít.

Vrácená hodnota

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

Vrácená hodnota Vztah prvních bajtů počtu buf1 a buf2
< 0 buffer1 menší než buffer2.
0 buffer1 shodný s buffer2.
> 0 buffer1 větší než buffer2.
_NLSCMPERROR Došlo k chybě.

Poznámky

Funkce _memicmp porovná první count znaky dvou vyrovnávacích buffer1 pamětí a buffer2 bajt bajtů. Porovnání nerozlišuje malá a velká písmena.

Pokud je nebo buffer1buffer2 je ukazatel null, tato funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, funkce vrátí _NLSCMPERROR a nastaví errno na EINVAL.

_memicmp používá aktuální národní prostředí pro chování závislé na národním prostředí; _memicmp_l je shodný s tím rozdílem, že místo toho používá národní prostředí předané. Další informace naleznete v tématu Národní prostředí.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
_memicmp <memory.h> nebo <string.h>
_memicmp_l <memory.h> nebo <string.h>

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

Příklad

// crt_memicmp.c
// This program uses _memicmp to compare
// the first 29 letters of the strings named first and
// second without regard to the case of the letters.

#include <memory.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   int result;
   char first[] = "Those Who Will Not Learn from History";
   char second[] = "THOSE WHO WILL NOT LEARN FROM their mistakes";
   // Note that the 29th character is right here ^

   printf( "Compare '%.29s' to '%.29s'\n", first, second );
   result = _memicmp( first, second, 29 );
   if( result < 0 )
      printf( "First is less than second.\n" );
   else if( result == 0 )
      printf( "First is equal to second.\n" );
   else if( result > 0 )
      printf( "First is greater than second.\n" );
}
Compare 'Those Who Will Not Learn from' to 'THOSE WHO WILL NOT LEARN FROM'
First is equal to second.

Viz také

Manipulace s vyrovnávací pamětí
_memccpy
memchr, wmemchr
memcmp, wmemcmp
memcpy, wmemcpy
memset, wmemset
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l