_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
_mbsnbcnt
a _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 str
s 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
_mbsnbcnt
a _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 EINVAL
hodnotu 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