BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 9 Librerías Estándar
Teoría: Utilerías generales <stdlib.h>

int wctomb(char *s, wchar_t wchar);

La función de wctomb determina el número de bytes necesarios para representar un carácter de multibyte correspondiendo al código cuyo valor es wchar (incluyendo cualquier modificación en estado de desplazamiento). Almacena la representación de caractéres de multibyte en el objeto de arreglo al cual apunta s (si s no es un apuntador nulo). Como máximo se almacenan MB_CUR_MAX caractéres. Si el valor de wchar es cero, la función wtomb se deja en el estado de desplazamiento inicial. Si s es un apuntador nulo, la función wctomb devuelve un valor de cero o no cero, en el caso que las codificaciones de caractéres de multibyte, respectivamente tengan o no tengan codificaciones dependiendo del estado. Si s no es un apuntador nulo, la función wctomb devuelve -1 si el valor de wchar no corresponde a un carácter de multibyte válido o devuelve el número de bytes contenidos en el carácter de multibyte correspondiente al valor de wchar. En ningún caso el valor devuelto será mayor que el de la macro MB_MAX.

size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n);

La función mbstowcs convierte la secuencia de caracteres multibytes que empieza en el estado de desplazamiento inicial del arreglo al cual apunta s en una secuencia de códigos correspondientes y almacena no más de n códigos en el arreglo al cual señala pwcs. No se examinarán o convertirán caracteres de multibyte que sigan después de un carácter nulo (mismo que se convierte a un código con valor cero). Cada carácter se convierte igual que en el caso de una función mbtowc, excepto de que no se afecta el estado de desplazamiento de la función mbtowc.

No se modificarán más de n elementos en el arreglo al cual señala pwcs. El comportamiento de copiar entre objetos que se superpongan queda indefinido. Si se encuentra un carácter de multibyte inválido, la función mbstowcs devuelve (size_t) -1. De no ser así, la función mbstowcs devuelve el número de elementos de arreglo modificados, sin incluir el código cero de terminación, si es que hay alguno.

size_t wcstombs(char *s, const wchar_t *pwcs, size_t n);

La función wcstombs combierte una secuencia de códigos que corresponden a caracteres de multibyte del arreglo al cual apunta pwcs a una secuencia de caracteres de multibyte que empieza en el estado inicial de desplazamiento y almacena estos caracteres de multibyte en el arreglo al cual señala s, deteniendose si un carácter multibyte se excediese del límite total de bytes igual a n o no se almacena un carácter nulo. Cada código se convierte igual que en el caso de una llamada a una función wctomb, a excepción que el estado de desplazamiento de la función wctomb no se afecta.

No se modificarán más de n bytes en el arreglo al cual señala s. Si la copia ocurre entre objetos que se superponen, el comportamiento queda indefinido. Si se encuentra con un código que no corresponda con un carácter válido de multibyte, la función wcstombs devuelve (size_t) -1. De lo contrario, la función wcstombs devuelve el número de bytes modificados, sin incluir el carácter nulo de terminación, si existiese.