_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

Zwraca liczbę znaków lub liczbę bajtów w ciągu określonej liczby.

Ważna uwagaWażne

_mbsnbcnt, _mbsnbcnt_l, _mbsnccnt i _mbsnccnt_l nie można używać w aplikacjach korzystających ze środowiska wykonawczego systemu Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /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
    Ciąg do badania.

  • count
    Liczba znaków lub liczba bajtów do badania w str.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

_mbsnbcnt i _mbsnbcnt_l zwracają liczbę bajtów znalezionych w pierwszym count znaków wielobajtowych str._mbsnccnt i _mbsnccnt_l zwracają liczbę znaków znalezionych w pierwszym count bajtów str.Jeśli znak NULL zostanie osiągnięty zanim badanie str zostanie zakończone, zwracają one liczbę bajtów lub znaków znalezionych przed znakiem NULL.Jeśli str składa się z mniej niż count znaków lub liczby bajtów, zwracają liczbę znaków lub liczbę bajtów w ciągu.Jeśli count jest mniejszy od zera, zwracają 0.W poprzednich wersjach te funkcje miały wartość zwrotu typu int zamiast size_t.

_strncnt zwraca liczbę znaków w pierwszym bajcie count ciągu jednobajtowego str._wcsncnt zwraca liczbę znaków w pierwszym count znaków dwubajtowych w ciągu znaków dwubajtowych str.

Uwagi

_mbsnbcnt i _mbsnbcnt_l zliczają liczbę bajtów znalezionych w pierwszym count znaków wielobajtowych str._mbsnbcnt i _mbsnbcnt_l zastępują mtob i powinny być używane zamiast mtob.

_mbsnccnt i _mbsnccnt_l zliczają liczbę znaków znalezionych w pierwszym count bajtów str.Jeśli _mbsnccnt i _mbsnccnt_l napotkają wartość NULL w drugim bajcie znaków dwubajtowych, pierwszy bajt jest również uważany za wartość NULL i nie jest włączony do wartości liczby zwracanej._mbsnccnt i _mbsnccnt_l zastępuje btom i powinny być używane zamiast btom.

Jeśli str jest wskaźnikiem typu null lub jest count wynosi 0, funkcje te wywołują procedurę obsługi nieprawidłowego parametru, zgodnie z opisem Sprawdzanie poprawności parametru, errno ustawiono na EINVAL, a funkcja zwraca 0.

Wartość wyjściowa jest zależna od konfiguracji ustawień kategorii LC_CTYPE ustawień regionalnych; zobacz setlocale, aby uzyskać więcej informacji.Wersje tych funkcji, które nie mają przyrostka _l używają bieżących ustawień regionalnych dla wszelkich zachowań zależnych od ustawień lokalnych; wersje, które mają przyrostek _l są identyczne, z tą różnicą, że w zamian korzystają z przekazanego parametru ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.

Rutynowe mapowania zwykłego tekstu

Procedura

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_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

Wymagania

Procedura

Wymagany nagłówek

_mbsnbcnt

<mbCiąg.h>

_mbsnbcnt_l

<mbCiąg.h>

_mbsnccnt

<mbCiąg.h>

_mbsnccnt_l

<mbCiąg.h>

_strncnt

<tchar.h>

_wcsncnt

<tchar.h>

Aby uzyskać więcej informacji na temat 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");
}

Dane wyjściowe

The first 10 characters are single-byte.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

Regionalne

Interpretacja wielobajtowych sekwencji znaków

_mbsnbcat, _mbsnbcat_l