Sdílet prostřednictvím


_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, , _mbsnccnt_mbsnccnt_l

Vrátí počet znaků nebo bajtů v zadaném počtu.

Důležité

_mbsnbcnt, _mbsnbcnt_l_mbsnccnt, a _mbsnccnt_l nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

size_t _strncnt(
   const char *str,
   size_t count
);
size_t _wcsncnt(
   const wchar_t *str,
   size_t count
);
size_t _mbsnbcnt(
   const unsigned char *str,
   size_t count
);
size_t _mbsnbcnt_l(
   const unsigned char *str,
   size_t count,
   _locale_t locale
);
size_t _mbsnccnt(
   const unsigned char *str,
   size_t count
);
size_t _mbsnccnt_l(
   const unsigned char *str,
   size_t count,
   _locale_t locale
);

Parametry

str
Řetězec, který se má prozkoumat.

count
Počet znaků nebo bajtů, které mají být zkoumány v str.

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

Vrácená hodnota

_mbsnbcnta _mbsnbcnt_l vrátí počet bajtů nalezených v prvním count z vícebajtových znaků .str _mbsnccnt a _mbsnccnt_l vrátí počet znaků nalezených v prvním count bajtech str. Pokud se před dokončením zkoumání str zjistí znak null, vrátí počet bajtů nebo znaků nalezených před znakem null. Pokud str se skládá z méně znaků count nebo bajtů, vrátí počet znaků nebo bajtů v řetězci. Pokud count je menší než nula, vrátí hodnotu 0. V předchozíchverzích int size_t

_strncnt vrátí počet znaků v prvních count bajtech řetězce strs jedním bajtem . _wcsncnt vrátí počet znaků v prvním count širokém znaménce řetězce strširokého znaku .

Poznámky

_mbsnbcnta _mbsnbcnt_l spočítejte počet bajtů nalezených v prvním count z vícebajtových znaků .str _mbsnbcnt a _mbsnbcnt_l nahradit mtob a měly by být použity místo mtob.

_mbsnccnt a _mbsnccnt_l spočítejte počet znaků nalezených v prvním count bajtech str. Pokud _mbsnccnt a _mbsnccnt_l narazíte na znak null ve druhém bajtu dvoubajtemového znaku, považuje se první bajt také za hodnotu null a není zahrnut do vrácené hodnoty počtu. _mbsnccnt a _mbsnccnt_l nahradit btom a měly by být použity místo btom.

Pokud str je ukazatel nebo je count 0, tyto funkce vyvolávají neplatnou NULL obslužnou rutinu parametru, jak je popsáno v ověření parametru, errno je nastavena na EINVALhodnotu a funkce vrátí hodnotu 0.

Výstupní hodnota je ovlivněna nastavením LC_CTYPE nastavení kategorie národního prostředí. Další informace najdete na webu setlocale. Verze těchto funkcí bez _l přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l příponou jsou shodné s tím rozdílem, že místo toho používají předaný parametr národního prostředí. 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.

Mapování rutin obecného textu

Rutina _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tcsnbcnt _strncnt _mbsnbcnt _wcsncnt
_tcsnccnt _strncnt _mbsnbcnt Není k dispozici
_wcsncnt _mbsnbcnt
_wcsncnt _mbsnccnt
Není k dispozici _mbsnbcnt_l _mbsnccnt_l

Požadavky

Rutina Požadovaný hlavičkový soubor
_mbsnbcnt <mbstring.h>
_mbsnbcnt_l <mbstring.h>
_mbsnccnt <mbstring.h>
_mbsnccnt_l <mbstring.h>
_strncnt <tchar.h>
_wcsncnt <tchar.h>

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

Příklad

// crt_mbsnbcnt.c

#include  <mbstring.h>
#include  <stdio.h>

int main( void )
{
   unsigned char str[] = "This is a multibyte-character string.";
   unsigned int char_count, byte_count;
   char_count = _mbsnccnt( str, 10 );
   byte_count = _mbsnbcnt( str, 10 );
   if ( byte_count - char_count )
      printf( "The first 10 characters contain %d multibyte characters\n", char_count );
   else
      printf( "The first 10 characters are single-byte.\n");
}

Výstup

The first 10 characters are single-byte.

Viz také

Manipulace s řetězci
Národní prostředí
Interpretace vícebajtových sekvencí znaků
_mbsnbcat, _mbsnbcat_l