_strncnt
, _wcsncnt
, _mbsnbcnt
, _mbsnbcnt_l
, , _mbsnccnt
, _mbsnccnt_l
Devuelve el número de caracteres o bytes de un recuento especificado.
Importante
_mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
y _mbsnccnt_l
no se pueden usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.
Sintaxis
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
);
Parámetros
str
Cadena que se va a examinar.
count
Número de caracteres o bytes que se van a examinar en str
.
locale
Configuración regional que se va a usar.
Valor devuelto
_mbsnbcnt
y _mbsnbcnt_l
devuelven el número de bytes que se encuentran en el primer count
de caracteres multibyte de str
. _mbsnccnt
y _mbsnccnt_l
devuelven el número de caracteres que se encuentran en el primer count
de bytes de str
. Si se encuentra un carácter NULL antes de que se haya completado el examen de str
, devuelven el número de bytes o caracteres encontrados antes del carácter NULL. Si str
consta de menos caracteres o bytes que count
, devuelven el número de caracteres o bytes de la cadena. Si count
es menor que cero, devuelven 0. En versiones anteriores, estas funciones tenían un valor devuelto de tipo int
en lugar de size_t
.
_strncnt
devuelve el número de caracteres de los primeros bytes de count
de la cadena str
de un solo byte. _wcsncnt
devuelve el número de caracteres de los primeros caracteres anchos de count
de cadena de caracteres anchos str
.
Comentarios
_mbsnbcnt
y _mbsnbcnt_l
cuentan el número de bytes que se encuentran en el primer count
de caracteres multibyte de str
. _mbsnbcnt
y _mbsnbcnt_l
reemplazan mtob
y deben usarse en lugar de mtob
.
_mbsnccnt
y _mbsnccnt_l
cuentan el número de caracteres que se encuentran en el primer count
de bytes de str
. Si _mbsnccnt
y _mbsnccnt_l
encuentran un carácter NULL en el segundo byte de un carácter de doble byte, el primer byte también se considera null y no se incluye en el valor de recuento devuelto. _mbsnccnt
y _mbsnccnt_l
reemplazan btom
y deben usarse en lugar de btom
.
Si str
es un NULL
puntero o es count
0, estas funciones invocan al controlador de parámetros no válidos como se describe en Validación de parámetros, errno
se establece EINVAL
en y la función devuelve 0.
El valor de salida se ve afectado por el valor de la categoría LC_CTYPE
de la configuración regional. Para obtener más información, vea setlocale
. Las versiones de estas funciones sin el sufijo _l
usan la configuración regional actual de su comportamiento dependiente de la configuración regional; las versiones con el sufijo _l
son idénticas salvo que usan el parámetro locale pasado en su lugar. Para obtener más información, vea Locale.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Routine | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnbcnt |
_strncnt |
_mbsnbcnt |
_wcsncnt |
_tcsnccnt |
_strncnt |
_mbsnbcnt |
N/D |
_wcsncnt |
n/d | n/d | _mbsnbcnt |
_wcsncnt |
n/d | n/d | _mbsnccnt |
n/d | N/D | _mbsnbcnt_l |
_mbsnccnt_l |
Requisitos
Routine | Encabezado necesario |
---|---|
_mbsnbcnt |
<mbstring.h> |
_mbsnbcnt_l |
<mbstring.h> |
_mbsnccnt |
<mbstring.h> |
_mbsnccnt_l |
<mbstring.h> |
_strncnt |
<tchar.h> |
_wcsncnt |
<tchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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.
Consulte también
Manipulación de cadenas
Configuración regional
Interpretación de secuencias de caracteres de varios bytes
_mbsnbcat
, _mbsnbcat_l