C / stdlib.h / mbtowc
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: mbtowc()
Sintaxis:
Descripcion: Si cad no es un puntero nulo, la función mbtowc determina el número de bytes contenidos en el carácter multibyte apuntado por cad. Entonces determina el código para el valor del tipo wchar_t que corresponde a un carácter multibyte. (El valor del código correspondiendo al carácter nulo es cero). Si el car0cter multibyte es válido y wcharPtr no es un puntero nulo, la función mbtowc guarda el código en el objeto apuntado por wcharPtr. Al menos n bytes del array apuntado por cad serán examinados.
Ejemplo:
Sintaxis:
int mbtowc(wchar_t *wcharPtr, const char *cad, size_t n);
Descripcion: Si cad no es un puntero nulo, la función mbtowc determina el número de bytes contenidos en el carácter multibyte apuntado por cad. Entonces determina el código para el valor del tipo wchar_t que corresponde a un carácter multibyte. (El valor del código correspondiendo al carácter nulo es cero). Si el car0cter multibyte es válido y wcharPtr no es un puntero nulo, la función mbtowc guarda el código en el objeto apuntado por wcharPtr. Al menos n bytes del array apuntado por cad serán examinados.
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; }