English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Biblioteca Padrão do C - <stdlib.h>
Função da biblioteca C int mblen(const char *str, size_t n) Retorna o parâmetro str A largura do caractere de múltiplos bytes apontado.
A seguir está a declaração da função mblen().
int mblen(const char *str, size_t n)
Se um caractere amplo não vazio for reconhecido, a função mblen() retorna o número de bytes da sequência de múltiplos bytes iniciada por str. Se um caractere amplo vazio for reconhecido, retorna 0. Se uma sequência de múltiplos bytes inválida for reconhecida ou não puder ser analisada um caractere de múltiplos bytes completo, retorna -1。
A seguir, é demonstrado o uso da função mblen().
#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 *wchar_t *)malloc( sizeof( wchar_t )); printf("Conversão para string de múltiplos bytes\n"); len = wcstombs( pmb, pwc, MB_CUR_MAX); printf("Caractere convertido: %d\n", len); printf("Valor hexadecimal do primeiro caractere de múltiplos bytes: %#.4x\n", pmb); len = mblen( pmb, MB_CUR_MAX ); printf( "Caracter de múltiplos bytes %x com comprimento de bytes: 睵n", pmb, len ); pmb = NULL; len = mblen( pmb, MB_CUR_MAX ); printf( "Caracter de múltiplos bytes %x com comprimento de bytes: 睵n", pmb, len ); return(0); }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:
Conversão para String de Múltiplos Bytes Caractere Convertido 1 Valor Hexadecimal do Primeiro Caractere de Múltiplos Bytes: 0x168c6010 Caractere de Múltiplos Bytes 168c6010 Comprimento de Bytes do Caractere:1 Comprimento de Bytes do Caractere de Múltiplos Bytes 0: 0