_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

Zwraca liczbę znaków lub bajtów w określonej liczbie.

Ważne

_mbsnbcnt, _mbsnbcnt_l, _mbsnccnti _mbsnccnt_l nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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
Ciąg do zbadania.

count
Liczba znaków lub bajtów do zbadania w pliku str.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

_mbsnbcnt i _mbsnbcnt_l zwraca liczbę bajtów znalezionych w pierwszym count z wielobajtowych znaków str. _mbsnccnt i _mbsnccnt_l zwróć liczbę znaków znalezionych w pierwszym count bajtach str. Jeśli znak null zostanie napotkany przed zakończeniem badania str , zwraca liczbę bajtów lub znaków znalezionych przed znakiem null. Jeśli str zawiera mniej niż count znaki lub bajty, zwracają liczbę znaków lub bajtów w ciągu. Jeśli count wartość jest mniejsza niż zero, zwracają wartość 0. W poprzednich wersjach te funkcje miały zwracaną wartość typu int , a nie size_t.

_strncnt Zwraca liczbę znaków w pierwszych count bajtach ciągu strjednobajtowego . _wcsncnt Zwraca liczbę znaków w pierwszych count szerokich znakach ciągu stro szerokim znaku .

Uwagi

_mbsnbcnt i _mbsnbcnt_l zlicz liczbę bajtów znalezionych w pierwszym count z wielobajtowych znaków str. _mbsnbcnti zastąpić mtob i _mbsnbcnt_l należy użyć zamiast mtob.

_mbsnccnt i _mbsnccnt_l zlicz liczbę znaków znalezionych w pierwszym count bajtach str. Jeśli _mbsnccnt i _mbsnccnt_l napotka znak null w drugim bajtzie znaku dwubajtowego, pierwszy bajt jest również uznawany za null i nie jest uwzględniony w zwracanej wartości liczbowej. _mbsnccnti zastąpić btom i _mbsnccnt_l należy użyć zamiast btom.

Jeśli str jest wskaźnikiem lub ma count wartość 0, te funkcje wywołują nieprawidłową procedurę NULL obsługi parametrów zgodnie z opisem w artykule Weryfikacja parametrów, errno jest ustawiona na EINVALwartość , a funkcja zwraca wartość 0.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. W celu uzyskania więcej informacji, zobacz następujący temat: setlocale. Wersje tych funkcji bez sufiksu _l używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje z _l sufiksem są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcsnbcnt _strncnt _mbsnbcnt _wcsncnt
_tcsnccnt _strncnt _mbsnbcnt nie dotyczy
_wcsncnt nie dotyczy nie dotyczy _mbsnbcnt
_wcsncnt nie dotyczy nie dotyczy _mbsnccnt
nie dotyczy nie dotyczy _mbsnbcnt_l _mbsnccnt_l

Wymagania

Procedura Wymagany nagłówek
_mbsnbcnt <mbstring.h>
_mbsnbcnt_l <mbstring.h>
_mbsnccnt <mbstring.h>
_mbsnccnt_l <mbstring.h>
_strncnt <Tchar.h>
_wcsncnt <Tchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// 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");
}

Wynik

The first 10 characters are single-byte.

Zobacz też

Manipulowanie ciągami
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
_mbsnbcat, _mbsnbcat_l