Sdílet prostřednictvím


_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á poznámkaDů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.

Viz také

Referenční dokumentace

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

Národní prostředí

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

_mbsnbcat, _mbsnbcat_l