Sdílet prostřednictvím


strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Porovnání znaků dva řetězce pomocí aktuální národní prostředí nebo zadané národní prostředí.

Důležitá poznámkaDůležité

_mbsncmpa _mbsncmp_l nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW.

int strncmp(
   const char *string1,
   const char *string2,
   size_t count 
);
int wcsncmp(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count 
);
int _mbsncmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsncmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count, 
   _locale_t locale
);int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);

Parametry

  • string1, string2
    Řetězce k porovnání.

  • count
    Počet znaků, které chcete porovnat.

  • locale
    Chcete-li národní prostředí pro použití.

Vrácená hodnota

Vrácená hodnota označuje vztah podřetězce string1 a string2 takto.

Vrácená hodnota

Description

< 0

string1podřetězec menší než string2 podřetězec

0

string1podřetězce, které jsou shodné s string2 podřetězec

> 0

string1podřetězce, které jsou větší než string2 podřetězec

Na chybu _mbsncmp vrátí _NLSCMPERROR, který je definován v ŘETĚZCI.H a MBSTRING.H.

Poznámky

strncmp Funkce lexicographically porovná, nanejvýš první count znaků v string1 a string2 a vrátí hodnotu určující vztah mezi podřetězce.strncmpje velká a malá písmena verze _strnicmp.wcsncmp and _mbsncmp are case-sensitive versions of _wcsnicmp and _mbsnicmp.

wcsncmpa _mbsncmp jsou verze širokého znaku a vícebajtové znakové sady strncmp.Argumenty a vrácené hodnoty wcsncmp jsou řetězci širokého znaku; u _mbsncmp jsou vícebajtové znakové řetězce._mbsncmprozpozná vícebajtové znakové sekvence podle vícebajtové znakové stránky a vrátí _NLSCMPERROR na chybu.

Také _mbsncmp ověřuje jeho parametry.Pokud string1 nebo string2 je nulový ukazatel,je vyvolána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametrů .Je-li pokračovat, je povoleno zpracování _mbsncmp vrátí _NLSCMPERROR a errno na EINVAL.strncmpa wcsncmp nelze ověřit jejich parametry.Tyto tři funkce chovat identicky jinak.

Výstupní hodnota je ovlivněna nastavením LC_CTYPE kategorie nastavení národního prostředí; Viz setlocale pro další informace.Verze těchto funkcí, aniž by _l příponu použít aktuální národní prostředí pro toto chování závislé na národním prostředí; verze s _l s tím rozdílem, že používají místo něho předán parametr locale shodná přípona.Další informace naleznete v tématu Národní prostředí.

Mapování rutiny obecného textu

TCHAR.Byla zahájena rutina h

_UNICODE & _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Mapy do makra nebo vložené funkce

_mbsncmp

Mapy do makra nebo vložené funkce

není k dispozici

není k dispozici

_mbsncmp_l

není k dispozici

Požadavky

Byla zahájena rutina

Požadované záhlaví

strncmp

<string.h>

wcsncmp

<string.h> nebo <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

// crt_strncmp.c
#include <string.h>
#include <stdio.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";

int main( void )
{
   char tmp[20];
   int result;
   printf( "Compare strings:\n      %s\n      %s\n\n",
           string1, string2 );
   printf( "Function:   strncmp (first 10 characters only)\n" );
   result = strncmp( string1, string2 , 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n\n", tmp );
   printf( "Function:   strnicmp _strnicmp (first 10 characters only)\n" );
   result = _strnicmp( string1, string2, 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n", tmp );
}
  

Ekvivalent v rozhraní .NET Framework

System::String::Compare

Viz také

Referenční dokumentace

Manipulaci s řetězci (CRT)

Národní prostředí

Výklad vícebajtové znakové sekvence

_mbsnbcmp _mbsnbcmp_l

_mbsnbicmp _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

Funkce strcoll

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l