Latest web development tutorials

funciones de la biblioteca C - mbstowcs ()

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

descripción

funciones de la biblioteca Csize_t mbstowcs (schar_t * PWCS, const char * str, size_t n) para convertir un argumento de cadena strpuntos de matriz de caracteres de varios bytes señalaron parámetrosde PWCS.

declaración

Aquí está la función () mbstowcs comunicado.

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

parámetros

  • PWC - señalando a una matriz de wchar_t, la longitud de la matriz de los elementos es suficiente para almacenar una amplia cadena de longitud máxima de caracteres.
  • str - cadena de caracteres de varios bytes que se desea convertir.
  • n - número máximo de caracteres que se desea convertir.

Valor de retorno

Esta función devuelve el número de caracteres en la conversión, sin incluir el carácter nulo de terminación. Si se encuentra con un inválido caracteres de varios bytes, el valor de retorno de -1.

Ejemplos

El siguiente ejemplo demuestra mbstowcs () 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);
   
   printf("转换回宽字符字符串\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("被转换的字符 %d\n", len);
   printf("第一个宽字符的十六进制值:%#.4x\n\n", pwcs);
   
   return(0);
}

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

转换为多字节字符串
被转换的字符 1
第一个多字节字符的十六进制值:0x19a60010
转换回宽字符字符串
被转换的字符 1
第一个宽字符的十六进制值:0x19a60030

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