Latest web development tutorials

funciones de la biblioteca C - mblen ()

C biblioteca estándar - <stdlib.h> C biblioteca estándar - <stdlib.h>

descripción

funciones de la biblioteca Cint mblen (const char * str, size_t n) devuelve los puntos strargumento de longitud de caracteres de varios bytes.

declaración

Aquí se mblen () la declaración de la función.

int mblen(const char *str, size_t n)

parámetros

  • str - apunta al primer byte del puntero de caracteres multi-byte.
  • El número máximo de bytes para verificar la longitud de caracteres- n.

Valor de retorno

Si la identificación de un carácter ancho no nulo, la función mblen () devuelve el número de bytes de la secuencia de varios bytes str iniciar el análisis. Si se identifica un carácter ancho nulo, devuelve 0. Si se identifica una secuencia de varios bytes no válido, o no puede analizar un carácter multibyte completo, se devuelve -1.

Ejemplos

El siguiente ejemplo demuestra mblen () se utiliza la función.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   int len;
   char *pmbnull  = NULL;
   char *pmb = (char *)malloc( MB_CUR_MAX );
   wchar_t *pwc = L"Hi";
   wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));

   printf("转换为多字节字符串\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("被转换的字符 %d\n", len);
   printf("第一个多字节字符的十六进制值:%#.4x\n", pmb);
   
   len = mblen( pmb, MB_CUR_MAX );
   printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
   
   pmb = NULL;
   
   len = mblen( pmb, MB_CUR_MAX );
   printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
   
   return(0);
}

Vamos a compilar y ejecutar el programa anterior, lo que resultará en lo siguiente:

转换为多字节字符串
被转换的字符 1
第一个多字节字符的十六进制值:0x168c6010
多字节字符 168c6010 的字节长度:1
多字节字符 0 的字节长度:0

C biblioteca estándar - <stdlib.h> C biblioteca estándar - <stdlib.h>