_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
Vrátí počet znaků nebo bajtů v rámci zadaného počtu.
Důležité |
---|
_mbsnbcnt, _mbsnbcnt_l, _mbsnccnt a _mbsnccnt_l nelze použít v aplikacích, které jsou spouštěny v modulu Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
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ý má být prozkoumán.count
Počet znaků nebo bajtů, které mají být prověřeny v str.locale
Použité národní prostředí.
Vrácená hodnota
_mbsnbcnt a _mbsnbcnt_l vrací počet bajtů nalezených v prvním count vícebajtových znaků str._mbsnccnt a _mbsnccnt_l vrací počet znaků nalezených v prvním count bajtů str.Pokud je zjištěn znak NULL před dokončením zkoumání str, vrátí počet bajtů nebo znaků nalezených před znakem NULL.Pokud se str skládá z méně než count znaků nebo bajtů, vrátí počet znaků nebo bajtů v řetězci.Pokud count je menší než nula, vrátí 0.V předchozích verzích tyto funkce měly návratovou hodnotu typu int spíše než size_t.
_strncnt vrátí počet znaků v prvním count bajtů jednobajtového řetězce str._wcsncnt vrátí počet znaků v prvním count širokých znaků širokoznakého řetězce str.
Poznámky
_mbsnbcnt a _mbsnbcnt_l počítají počet bajtů nalezených v prvním count vícebajtových znaků z str._mbsnbcnt a _mbsnbcnt_l nahrazují mtob a musí být použity místo mtob.
_mbsnccnt a _mbsnccnt_l počítají počet znaků nalezených v prvním count bajtů str.Pokud _mbsnccnt a _mbsnccnt_l v druhém bajtu dvoubajtového znaku zjistí hodnotu NULL, první bajt bude také považován za hodnotu NULL a nebude zahrnut do vrácené hodnoty počtu._mbsnccnt a _mbsnccnt_l nahrazují btom a musí být použity místo btom.
Pokud je str ukazatel null nebo count je 0, tyto funkce vyvolají obslužnou rutinu neplatného parametru, jak je popsáno v tématu Ověření parametru, errno je nastaven na EINVAL a funkce vrátí 0.
Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.Verze těchto funkcí bez přípony _l používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s příponou _l jsou stejné s tím rozdílem, že používají předaný parametr národního prostředí.Další informace naleznete v tématu Národní prostředí.
Rutinní mapování obecného textu
Rutina |
_UNICODE a _MBCS nejsou definovány |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tcsnbcnt |
_strncnt |
_mbsnbcnt |
_wcsncnt |
_tcsnccnt |
_strncnt |
_mbsnbcnt |
n/a |
_wcsncnt |
n/a |
n/a |
_mbsnbcnt |
_wcsncnt |
n/a |
n/a |
_mbsnccnt |
n/a |
n/a |
_mbsnbcnt_l |
_mbsnccnt_l |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_mbsnbcnt |
<mbstring.h> |
_mbsnbcnt_l |
<mbstring.h> |
_mbsnccnt |
<mbstring.h> |
_mbsnccnt_l |
<mbstring.h> |
_strncnt |
<tchar.h> |
_wcsncnt |
<tchar.h> |
Další informace o kompatibilitě naleznete 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ýsledek
The first 10 characters are single-byte.
Ekvivalent v rozhraní .NET Framework
Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.