English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Funções no C

Matrizes no C

Ponteiro no C

String no C

Estrutura de linguagem C

Arquivo de linguagem C

Outros C

Manual de referência do C

Uso e exemplo da função mbstowcs() da biblioteca C

Biblioteca padrão no C - <stdlib.h>

Função da biblioteca C size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) Converter str Converte a string de caractere de múltiplos bytes apontada por pwcs Ponteiro para o array.

Declaração

Abaixo está a declaração da função mbstowcs().

size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)

Parâmetro

  • pwcs -- Ponteiro para um array de elementos wchar_t, cujo comprimento é suficiente para armazenar uma string de caractere amplo de comprimento máximo.
  • str -- A string de caractere de múltiplos bytes a ser convertida.
  • n -- O número máximo de caracteres a serem convertidos.

valor de retorno

A função retorna o número de caracteres convertidos, sem o caractere nulo final. Se encontrar um caractere de múltiplos bytes inválido, retorna -1 valor

Exemplo online

Abaixo está um exemplo de uso da função mbstowcs().

#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("Converter para string de múltiplos bytes\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("Caractere convertido %d\n", len);
   printf("O valor hexadecimal do primeiro caractere de múltiplos bytes: %#.4x\n", pmb);
   printf("Converter para string de caractere amplo\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("Caractere convertido %d\n", len);
   printf("O valor hexadecimal do primeiro caractere amplo: %#.4x\n\n", pwcs);
   return(0);
}

Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:

Converter para string multibyte
Caractere a ser convertido 1
O valor hexadecimal do primeiro caractere multibyte: 0x19a60010
Converter para string de caractere amplo
Caractere a ser convertido 1
O valor hexadecimal do primeiro caractere amplo: 0x19a60030

Biblioteca padrão no C - <stdlib.h>