_strncnt
, , _wcsncnt
, _mbsnbcnt
, _mbsnbcnt_l
, , _mbsnccnt
_mbsnccnt_l
Zwraca liczbę znaków lub bajtów w określonej liczbie.
Ważne
_mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
i _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 str
jednobajtowego . _wcsncnt
Zwraca liczbę znaków w pierwszych count
szerokich znakach ciągu str
o szerokim znaku .
Uwagi
_mbsnbcnt
i _mbsnbcnt_l
zlicz liczbę bajtów znalezionych w pierwszym count
z wielobajtowych znaków str
. _mbsnbcnt
i 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. _mbsnccnt
i 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 EINVAL
wartość , a funkcja zwraca wartość 0.
Na wartość wyjściową ma wpływ ustawienie LC_CTYPE
ustawienia kategorii ustawień regionalnych. Aby uzyskać więcej informacji, zobacz 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 zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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