Sdílet prostřednictvím


strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Porovná až do zadaného počtu znaků ze dvou řetězců.

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

_mbsncmpa _mbsncmp_l nelze použít v aplikacích, které jsou spuštěny v běhovém prostředí systému Windows.Další informace naleznete v tématu CRT funkce nepodporované 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é mají být porovnány.

  • locale
    Národní prostředí má použít.

Vrácená hodnota

Návratová hodnota udává vztah dílčí řetězce z string1 a string2 následujícím způsobem.

Návratová hodnota

Popis

< 0

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

0

string1podřetězec totožná s string2 podřetězec

> 0

string1podřetězec větší než string2 podřetězec

Na chybu ověření parametru _mbsncmp a _mbsncmp_l vrátit _NLSCMPERROR, který je definován v < string.h > a < mbstring.h >.

Poznámky

strncmp Funkce provádí porovnávání podle pořadového čísla maximálně prvního count znaky v string1 a string2 a vrátí hodnotu, která určuje vztah mezi dílčích řetězců.strncmpje velká a malá písmena verze _strnicmp.wcsncmpa _mbsncmp jsou malá a velká písmena verze _wcsnicmp a _mbsnicmp.

wcsncmpa _mbsncmp jsou širokého znaku a multibajtové znakové verze strncmp.Argumenty wcsncmp jsou řetězce širokého znaku; u _mbsncmp jsou multibajtové znakové řetězce._mbsncmprozpozná multibajtové znakové pořadí podle více znakové stránky a vrátí _NLSCMPERROR na chybu.

Také _mbsncmp a _mbsncmp_l ověření parametrů.Pokud string1 nebo string2 je ukazatel s hodnotou null, je volána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametru.Pokud chcete-li pokračovat, je povoleno zpracování _mbsncmp a _mbsncmp_l vrátit _NLSCMPERROR a nastavte errno k EINVAL.strncmpa wcsncmp nelze ověřit jejich parametry.Tyto funkce chovat stejně jako v opačném případě.

Porovnání chování _mbsncmp a _mbsncmp_l nastavení má vliv LC_CTYPE kategorie nastavení národního prostředí.Tato volba určuje detekce úvodní a koncovou velikost v bajtech středník.Další informace naleznete v tématu setlocale._mbsncmp Využívá funkce aktuální národní prostředí pro toto chování závislé na národní prostředí._mbsncmp_l Funkce je totožný s tím rozdílem, že se používá locale parametr místo toho.Další informace naleznete v tématu Národní prostředí.Pokud národní prostředí je národní prostředí, jednoho bajtu, chování z těchto funkcí je shodné s strncmp.

Mapování rutin obecného textu

Rutina TCHAR.H

_UNICODE & _MBCS není definována.

_MBCS definováno

_UNICODE definováno

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Mapuje makra nebo vložené funkce

_mbsncmp

Mapuje makra nebo vložené funkce

není k dispozici

není k dispozici

_mbsncmp_l

není k dispozici

Požadavky

Rutina

Požadovaný hlavičkový soubor

strncmp

< string.h >

wcsncmp

< string.h > nebo < wchar.h >

_mbsncmp, _mbsncmp_l

< mbstring.h >

Další informace o kompatibilitě, naleznete v části kompatibility.

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

Zacházení s řetězci (CRT)

Národní prostředí

Výklad sekvencí vícebajtových znaků

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

strcoll – funkce

_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