std::wctob - cppreference.com

From cppreference.com

intwctob(std::wint_tc);Narrows a wide character c if its multibyte character equivalent in the initial shift state is a single byte.

This is typically possible for the characters from the ASCII character set, since most multibyte encodings (such as UTF-8) use single bytes to encode those characters.

Parameters

c - wide character to narrow Return value

EOF

if c does not represent a multibyte character with length 1 in initial shift state.

Otherwise, the single-byte representation of c as unsignedchar converted to int.

Example

Run this code

#include<clocale>#include<cwchar>#include<iostream>voidtry_narrowing(wchar_tc){intcn=std::wctob(c);if(cn!=EOF)std::cout<<'\''<<int(c)<<"' narrowed to "<<+cn<<'\n';elsestd::cout<<'\''<<int(c)<<"' could not be narrowed\n";}intmain(){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'๛');}Output:

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 See also

widens a single-byte narrow character to wide character, if possible
(function)

[edit]

narrows characters
(public member function of std::basic_ios<CharT,Traits>)

[edit]

invokes do_narrow
(public member function of std::ctype<CharT>)

[edit]