C / stdlib.h / wctomb
abort, abs, atexit, atof, atoi, atol, bsearch, calloc, div, exit, free, getenv, labs, ldiv, malloc, mble, mbstowcs, mbtowc, qsort, rand, realloc, srand, strtod, strtol, strtoul, system, » wctomb,
Funcion: wctomb()
Sintaxis:
Descripcion: Determina el número de bytes necesitado para representar un carácter multibyte correspondiendo al código cuyo valor es wchar (incluyendo cualquier cambio en el estado de traslado). Guard la representación del carácter multibyte en el array apuntado por cad (si cad no es un puntero nulo). Al menos MB_CUR_MAX caracteres son guardados. Si el valor de wchar es cero, la función wctomb es dejado en el estado inical de traslado.
Ejemplo:
Sintaxis:
int wctomb(char *cad, wchar_t wchar);
Descripcion: Determina el número de bytes necesitado para representar un carácter multibyte correspondiendo al código cuyo valor es wchar (incluyendo cualquier cambio en el estado de traslado). Guard la representación del carácter multibyte en el array apuntado por cad (si cad no es un puntero nulo). Al menos MB_CUR_MAX caracteres son guardados. Si el valor de wchar es cero, la función wctomb es dejado en el estado inical de traslado.
Ejemplo:
/* Ejemplo sacado de la ayuda de Borland */ #include <stdlib.h> #include <stdio.h> int main() { int x; char *mbchar = (char *)calloc(1, sizeof( char)); wchar_t wchar = L'a'; wchar_t *pwcnull = NULL; wchar_t *pwchar = (wchar_t *)calloc(1, sizeof( wchar_t )); printf( "Convertir un carácter ancho a un carácter multibyte:\n" ); x = wctomb( mbchar, wchar); printf( "\tCaracteres convertidos: %u\n", x ); printf( "\tCarácter multibyte: %x\n\n", mbchar ); printf( "Tamaño del carácter multibyte (según mblen): %u\n", mblen(mbchar, MB_CUR_MAX) ); printf( "Convertir carácter multibyte de nuevo a un carácter ancho:\n" ); x = mbtowc( pwchar, mbchar, MB_CUR_MAX ); printf( "\tBytes convertidos: %u\n", x ); printf( "\tCarácter ancho: %x\n\n", pwchar ); printf( "Intentar convertir cuando el destinatario es nulo (NULL)\n" ); printf( " retorna la longitud del carácter multibyte: " ); x = mbtowc( pwcnull, mbchar, MB_CUR_MAX ); printf( "%u\n\n", x ); printf( "Intenta convertir un puntero nulo (NULL) a un" ); printf( " carácter ancho:\n" ); mbchar = NULL; x = mbtowc( pwchar, mbchar, MB_CUR_MAX ); printf( "\tBytes convertidos: %u\n", x ); return 0; }