La función wcrtomb () en C ++ convierte un carácter ancho en su representación multibyte estrecha.
El wcrtomb () se define en el archivo de encabezado.
prototipo de wcrtomb ()
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
La función wcrtomb () convierte el carácter ancho representado por wc en un carácter estrecho multibyte y se almacena en la dirección apuntada por s.
- Si s no es un puntero nulo, la función wcrtomb () determina el número máximo de bytes necesarios para almacenar la representación multibyte de wc y la almacena en la ubicación de memoria señalada por s. Se puede escribir un máximo de MB_CUR_MAX bytes. El valor de ps se actualiza según sea necesario.
- Si s es un puntero nulo, la llamada es equivalente a
wcrtomb(buf, L' ', ps)
para algún búfer interno. - Si
wc == L' '
, se almacena un byte nulo.
Parámetros de wcrtomb ()
- s: puntero a la matriz de caracteres multibyte para almacenar el resultado.
- wc: Carácter ancho para convertir.
- ps: puntero al estado de conversión utilizado al interpretar la cadena multibyte
wcrtomb () Valor de retorno
- En caso de éxito, la función wcrtomb () devuelve el número de bytes escritos en la matriz de caracteres cuyo primer elemento apunta s.
- En caso de falla (es decir, wc no es un carácter ancho válido), devuelve -1, errno se establece en EILSEQ y deja * ps en un estado no especificado.
Ejemplo: ¿Cómo funciona la función wcrtomb ()?
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i
When you run the program, the output will be:
Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes