std:: wctob
|
Definido en el encabezado
<cwchar>
|
||
|
int
wctob
(
std::
wint_t
c
)
;
|
||
Reduce un carácter ancho c si su equivalente de carácter multibyte en el estado de cambio inicial es un solo byte.
Esto es típicamente posible para los caracteres del conjunto de caracteres ASCII, ya que la mayoría de codificaciones multibyte (como UTF-8) utilizan bytes individuales para codificar esos caracteres.
Contenidos |
Parámetros
| c | - | carácter ancho a estrecho |
Valor de retorno
EOF si c no representa un carácter multibyte con longitud 1 en estado de desplazamiento inicial.
De lo contrario, la representación de un solo byte de c como unsigned char convertida a int .
Ejemplo
#include <clocale> #include <cwchar> #include <iostream> void try_narrowing(wchar_t c) { int cn = std::wctob(c); if (cn != EOF) std::cout << '\'' << int(c) << "' narrowed to " << +cn << '\n'; else std::cout << '\'' << int(c) << "' could not be narrowed\n"; } int main() { std::setlocale(LC_ALL, "th_TH.utf8"); std::cout << std::hex << std::showbase << "In Thai UTF-8 locale:\n"; try_narrowing(L'a'); try_narrowing(L'๛'); std::setlocale(LC_ALL, "th_TH.tis620"); std::cout << "In Thai TIS-620 locale:\n"; try_narrowing(L'a'); try_narrowing(L'๛'); }
Salida:
In Thai UTF-8 locale: '0x61' narrowed to 0x61 '0xe5b' could not be narrowed In Thai TIS-620 locale: '0x61' narrowed to 0x61 '0xe5b' narrowed to 0xfb
Véase también
|
amplía un carácter estrecho de un solo byte a carácter ancho, si es posible
(función) |
|
|
reduce caracteres
(función miembro pública de
std::basic_ios<CharT,Traits>
)
|
|
invoca
do_narrow
(función miembro pública de
std::ctype<CharT>
)
|
|
|
Documentación C
para
wctob
|
|