_mbclen, mblen, _mblen_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Obtiene la longitud y determina la validez de un carácter multibyte.

System_CAPS_ICON_important.jpg Importante

Esta API no se puede 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 con /ZW.

size_t _mbclen(  
   const unsigned char *c   
);  
int mblen(  
   const char *mbstr,  
   size_t count   
);  
int _mblen_l(  
   const char *mbstr,  
   size_t count,  
   _locale_t locale  
);  

Parámetros

c
Carácter multibyte.

mbstr
Dirección de una secuencia de bytes de caracteres multibyte.

count
Número de bytes que se va a comprobar.

locale
Configuración regional que se va a usar.

_mbclen devuelve 1 o 2, en función de que el carácter multibyte c tenga una longitud de 1 o 2 bytes. _mbclen no devuelve ningún error. Si mbstr no es NULL, mblen devuelve la longitud, en bytes, del carácter multibyte. Si mbstr es NULL o señala al carácter nulo de caracteres anchos, mblen devuelve 0. Si el objeto al que señala mbstr no forma un carácter multibyte válido en los primeros count caracteres, mblen devuelve –1.

La función _mbclen devuelve la longitud, en bytes, del carácter multibyte c. Si c no señala al byte inicial de un carácter multibyte determinado por una llamada implícita a _ismbblead, el resultado de _mbclen es imprevisible.

mblen devuelve la longitud en bytes de mbstr si es un carácter multibyte válido, y determina la validez del carácter multibyte asociada a la página de códigos. mblen examina count bytes o menos de mbstr, pero no más MB_CUR_MAX bytes.

El valor de salida se ve afectado por el valor de la categoría LC_CTYPE de la configuración regional; vea setlocale para obtener más información. 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 Configuración regional.

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tclenSe asigna a una macro o una función insertada_mbclenSe asigna a una macro o una función insertada
RutinaEncabezado necesario
_mbclen<mbstring.h>
mblen<stdlib.h>
_mblen_l<stdlib.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad.

// crt_mblen.c  
/* illustrates the behavior of the mblen function  
 */  
  
#include <stdlib.h>  
#include <stdio.h>  
  
int main( void )  
{  
    int      i;  
    char    *pmbc = (char *)malloc( sizeof( char ) );  
    wchar_t  wc   = L'a';  
  
    printf( "Convert wide character to multibyte character:\n" );  
    wctomb_s( &i, pmbc, sizeof(char), wc );  
    printf( "  Characters converted: %u\n", i );  
    printf( "  Multibyte character: %x\n\n", *pmbc );  
  
    i = mblen( pmbc, MB_CUR_MAX );  
    printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );  
  
    pmbc = NULL;  
    i = mblen( pmbc, MB_CUR_MAX );  
    printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );  
}  

Convert wide character to multibyte character:  
  Characters converted: 1  
  Multibyte character: 61  
  
Length in bytes of multibyte character 61: 1  
Length in bytes of NULL multibyte character 0: 0  

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Clasificación de caracteres
Configuración regional
Interpretación de secuencias de caracteres de varios bytes
_mbccpy, _mbccpy_l
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l

Mostrar: