_strncnt
, , _wcsncnt
_mbsnbcnt_l
_mbsnbcnt
_mbsnccnt
,_mbsnccnt_l
Возвращает число символов или байтов в пределах указанного количества.
Внимание
_mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
и _mbsnccnt_l
нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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
);
Параметры
str
Строка, которую необходимо проверить.
count
Число символов или байтов, которые нужно проверить в str
.
locale
Используемый языковой стандарт.
Возвращаемое значение
_mbsnbcnt
и _mbsnbcnt_l
возвращают число байтов, найденных в первой части count
многобайтовых символов в str
. _mbsnccnt
и _mbsnccnt_l
возвращают число символов, найденных в первой части count
байтов в str
. Если до завершения проверки str
обнаружен пустой символ, они возвращают количество байтов или символов, найденных до значения NULL. Если str
состоит менее чем из count
символов или байтов, они возвращают число символов или байтов в строке. Если count
меньше нуля, они возвращают 0. В предыдущих версиях эти функции имели возвращаемое значение типа int
, а не size_t
.
_strncnt
возвращает количество символов в первых count
байтах однобайтовой строки str
. _wcsncnt
возвращает количество символов в первых count
расширенных символах строки расширенных символов str
.
Замечания
_mbsnbcnt
и _mbsnbcnt_l
подсчитывают число байтов, найденных в первой части count
многобайтовых символов в str
. _mbsnbcnt
и _mbsnbcnt_l
заменяют mtob
и должны использоваться вместо mtob
.
_mbsnccnt
и _mbsnccnt_l
подсчитывают число символов, найденных в первой части count
байтов в str
. Если _mbsnccnt
и _mbsnccnt_l
возникает значение NULL во втором байте двухбайтового символа, первый байт также считается null и не включается в возвращаемое значение счетчика. _mbsnccnt
и _mbsnccnt_l
заменяют btom
и должны использоваться вместо btom
.
Если str
указатель count
NULL
равен 0, эти функции вызывают обработчик недопустимых параметров, как описано в разделе "Проверка параметров", имеет EINVAL
значение , errno
а функция возвращает значение 0.
Выходное значение зависит от параметра LC_CTYPE
категории языкового стандарта. Дополнительные сведения см. в разделе setlocale
. Версии этих функций без суффикса _l
используют текущий языковой стандарт для данного поведения, зависимого от языкового стандарта. Версии с суффиксом _l
идентичны, однако они используют переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Маршрут | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcsnbcnt |
_strncnt |
_mbsnbcnt |
_wcsncnt |
_tcsnccnt |
_strncnt |
_mbsnbcnt |
Недоступно |
_wcsncnt |
н/д | н/д | _mbsnbcnt |
_wcsncnt |
н/д | н/д | _mbsnccnt |
н/д | Недоступно | _mbsnbcnt_l |
_mbsnccnt_l |
Требования
Маршрут | Обязательный заголовок |
---|---|
_mbsnbcnt |
<mbstring.h> |
_mbsnbcnt_l |
<mbstring.h> |
_mbsnccnt |
<mbstring.h> |
_mbsnccnt_l |
<mbstring.h> |
_strncnt |
<tchar.h> |
_wcsncnt |
<tchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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");
}
Выходные данные
The first 10 characters are single-byte.
См. также
Обработка строк
Локаль
Интерпретация последовательностей многобайтовых символов
_mbsnbcat
, _mbsnbcat_l