_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
Возвращает число символов или байтов в пределах указанного числа.
Важно!
_mbsnbcnt, _mbsnbcnt_l, _mbsnccnt и _mbsnccnt_l невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /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
);
Параметры
str
Строка, которую требуется анализировать.count
Число символов или байтов, которые будут анализироваться в str.locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
_mbsnbcnt и _mbsnbcnt_l возвращают количество байтов, содержащихся в первых count многобайтовых символах строки str. _mbsnccnt и _mbsnccnt_l возвращают количество символов, содержащихся в первых count байтах строки str. Если встречается нуль-символ, прежде чем анализ str завершен, они возвращают число байт или символов перед нуль-символом. Если 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 - указатель на null, или count равен 0, то эти функции вызывают обработчик недопустимого параметра, как описано в разделе Проверка параметров, errno устанавливается в значение EINVAL, и функция возвращает 0.
Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.
Универсальное текстовое сопоставление функций
Подпрограмма |
_UNICODE и _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_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 |
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_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");
}
Output
The first 10 characters are single-byte.
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.