C++ Locale 库 - widen
描述
它用于加宽字符,在内部,这个函数简单地调用虚拟受保护成员 do_widen,默认情况下它在通用模板和 char 特化 (ctype<char>) 中执行上述操作。
声明
以下是 std::ctype::widen 的声明。
C++98
char_type tolower (char_type c) const;
C++11
char_type tolower (char_type c) const;
参数
c − 它是一个字符类型。
low,high − 它是一个指向字符序列开头和结尾的指针。
to − 它是指向构面字符类型的一系列元素的指针。
返回值
它返回 c 的变换。
异常
如果抛出异常,则 facet 对象不会发生任何变化,尽管范围内的字符可能已受到影响。
数据竞争
访问对象和 range [low,high) 中的元素。
示例
在下面的例子中解释了 std::ctype::widen。
#include <iostream> #include <locale> int main () { std::locale loc; const char narrow_phrase[] = "Sairamkrishna Mammahe"; wchar_t wide_phrase[sizeof(narrow_phrase)]; std::wcout << L"The first wide character is: "; wchar_t wc = std::use_facet< std::ctype<wchar_t> >(loc).widen ( *narrow_phrase ); std::wcout << wc << std::endl; std::wcout << L"The wide-character phrase is: "; std::use_facet< std::ctype<wchar_t> >(loc).widen (narrow_phrase, narrow_phrase+sizeof(narrow_phrase), wide_phrase); std::wcout << wide_phrase << std::endl; return 0; }
让我们编译并运行上面的程序,这将产生以下结果 −
The first wide character is: S The wide-character phrase is: Sairamkrishna Mammahe