官术网_书友最值得收藏!

1.2.5 庫對新字符類型的支持

隨著新字符類型加入C++11標準,相應(yīng)的庫函數(shù)也加入進來。C11在中增加了4個字符的轉(zhuǎn)換函數(shù),包括:

size_t mbrtoc16( char16_t* pc16, const char* s, size_t n, mbstate_t* ps );
size_t c16rtomb( char* s, char16_t c16, mbstate_t* ps );
size_t mbrtoc32( char32_t* pc32, const char* s, size_t n, mbstate_t* ps );
size_t c32rtomb( char* s, char32_t c32, mbstate_t* ps );

它們的功能分別是多字節(jié)字符和UTF-16編碼字符互轉(zhuǎn),以及多字節(jié)字符和UTF-32編碼字符互轉(zhuǎn)。在C++11中,我們可以通過包含<cuchar>來使用這4個函數(shù)。當然C++11中也添加了C++風(fēng)格的轉(zhuǎn)發(fā)方法std::wstring_convert以及std::codecvt。使用類模板std::wstring_convertstd::codecvt相結(jié)合,可以對多字節(jié)字符串和寬字符串進行轉(zhuǎn)換。不過這里并不打算花費篇幅介紹這些轉(zhuǎn)換方法,因為它們在C++17標準中已經(jīng)不被推薦使用了,所以應(yīng)該盡量避免使用它們。

除此之外,C++標準庫的字符串也加入了對新字符類型的支持,例如:

using u16string = basic_string;
using u32string = basic_string;
using wstring = basic_string;
主站蜘蛛池模板: 宕昌县| 娱乐| 枣阳市| 固阳县| 蓝山县| 六安市| 尉犁县| 祥云县| 永丰县| 牙克石市| 浮山县| 休宁县| 大冶市| 贵阳市| 北宁市| 江源县| 年辖:市辖区| 聂拉木县| 甘南县| 炎陵县| 威信县| 红安县| 怀化市| 中山市| 涟水县| 昌乐县| 景宁| 弥勒县| 余姚市| 宜章县| 彭泽县| 珲春市| 阿克苏市| 察隅县| 礼泉县| 绥棱县| 金山区| 彰化县| 祁连县| 太湖县| 阳城县|