La función wctob() en C++ ayuda a convertir un carácter ancho wc en un solo byte, si su equivalente de carácter multibyte en el estado de cambio inicial es un solo byte. Dado que la función utiliza codificación de un solo byte, por lo tanto, se utiliza para caracteres del juego de caracteres ASCII.
Sintaxis:
int wctob (wint_t wc);
Parámetros: La función anterior acepta un solo parámetro como se describe a continuación:
Tipo de devolución: la función devuelve una representación de un solo byte del carácter ancho wc, si corresponde a un carácter multibyte con una longitud de un solo byte en el estado inicial. De lo contrario, devuelve EOF (fin de archivo).
Los siguientes programas ilustran la función anterior:
Programa 1:
// Program illustrating // wctob() function #include <bits/stdc++.h> // function implementing the wctob() function int fun() { int i, num; const wchar_t wc[] = L"priya lal"; num = 0; for (i = 0; i < wcslen(wc); ++i) if (wctob(wc[i]) != EOF) ++num; // prints the numbers of characters // needed to be translated wprintf(L"wc has %d characters to be translated" "to single-byte characters.", num); } // Driver Program int main() { fun(); return 0; }
wc has 9 characters to be translatedto single-byte characters.
Programa 2:
// C++ program illustrating the wctob() function #include <bits/stdc++.h> // function implementing the wctob() function void fun(wchar_t wc) { int cn = wctob(wc); if (cn != EOF) printf("%#x translated to %#x\n", wc, cn); else printf("%#x could not be translated\n", wc); } // Driver Program int main(void) { char* utf_locale_present = setlocale(LC_ALL, "th_TH.utf8"); // prints the result of the function puts("In Thai UTF-8 locale:"); fun(L'a'); fun(L'?'); }
In Thai UTF-8 locale: 0x61 translated to 0x61 0x3f translated to 0x3f
Publicación traducida automáticamente
Artículo escrito por priya_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA