C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- std::basic_string
- std::basic_string_view
- ç©ºç»æ¢åèå符串
- ç©ºç»æ¢å¤åèå符串
- std::mbsinit
- std::mbtowc
- std::mbstowcs
- std::btowc
- std::c8rtomb
- std::mbrtoc8
- std::mbrtowc
- std::mbsrtowcs
- std::mbrtoc16
- std::mbrtoc32
- std::mblen
- std::wctomb
- std::wcstombs
- std::wctob
- std::wcrtomb
- std::wcsrtombs
- std::c16rtomb
- std::c32rtomb
- std::mbrlen
- std::mbstate_t
- ç©ºç»æ¢å®½å符串
- std::char_traits
- 注é
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >åç¬¦ä¸²åº > ç©ºç»æ¢å¤åèå符串
ç©ºç»æ¢å¤åèå符串
ç©ºç»æ¢å¤åèåç¬¦ä¸²ï¼ null-terminated multibyte string, NTMBS ï¼ï¼æâå¤åèå符串âï¼æ¯å鿥æé¶å¼çåèï¼ç©ºç»æ¢å符ï¼çéé¶åèåºåã
åå¨äºè¯¥å符串ä¸çæ¯ä¸ªå符å¯è½å ç¨å¤äºä¸ä¸ªåèãç¨äºè¡¨ç¤ºå符çç¼ç æ¯æ¬å°ç¯å¢éå®çï¼å®å¯ä»¥æ¯ UTF-8 ã GB18030 ã EUC-JP ã Shift-JIS çãä¾å¦ï¼å符æ°ç» {'\xe4','\xbd','\xa0','\xe5','\xa5','\xbd','\0'} æ¯ä¸ä¸ªä»¥UTF8ç¼ç å å« "ä½ å¥½" ç NTMBS ï¼é¦ä¸ä¸ªåèç¼ç å符 "ä½ " ï¼æ¥ä¸æ¥ä¸ä¸ªåèç¼ç å符 "好" ãç¼ç äº GB18030 çç¸åå符串æ¯å符æ°ç» {'\xc4', '\xe3', '\xba', '\xc3', '\0'} ï¼å ¶ä¸äºä¸ªå符åç¼ç 为ååèåºåã
ä¸äºå¤åèç¼ç ä¸ï¼ä»»ä½ç»å®çå¤åèå符åºåå¯ä»¥æ ¹æ®ä¹åçåèåºåï¼ç§°ä¹ä¸ºâè¿ç§»åºåâï¼è¡¨ç¤ºä¸åçå符ãè¿ç§ç¼ç è¢«ç§°ä¸ºç¶æä¾èµçï¼è¦æ±ç¥æå½åè¿ç§»ç¶æä»¥è½¬è¯æ¯ä¸ªå符ã NTMBS ä» è¥ä»¥åå§è¿ç§»ç¶æå¼å§åç»ææåæ³ï¼è¥ä½¿ç¨è¿ç§»åºåï¼å对åºçæ è¿ç§»åºåå¿ é¡»å¨ç©ºç»æ¢å符ååå¨ãè¿ç§ç¼ç çä¾åæ¯ 7-bit JIS ã BOCU-1 å SCSU ã
å¤åèå符串ä¸ç©ºç»æ¢åèåç¬¦ä¸²ï¼ NTBS ï¼å¸å±å ¼å®¹ï¼å³è½ç¨ç¸åç设æ½åå¨ãå¤å¶å¹¶æ£éªï¼é¤äºè®¡ç®å符æ°ãè¥å½åæ¬å°ç¯å¢çæï¼å I/O 彿°äº¦å¤çå¤åèå符串ãå¤åèå符串å¯ç¨ std::codecvt æå彿°ã std::wstring_convert æä¸åä¾èµæ¬å°ç¯å¢ç转æ¢å½æ°ä¸å®½å符串ç¸äºè½¬æ¢ï¼
å¤åè/宽å符串转æ¢
| å®ä¹äºå¤´æä»¶
<cstdlib> | |
| è¿åä¸ä¸ä¸ªå¤åèå符ä¸çåèæ° (彿°) | |
| å°ä¸ä¸ä¸ªå¤åèåç¬¦è½¬æ¢æå®½å符 (彿°) | |
| 转æ¢å®½å符为å
¶å¤åè表示 (彿°) | |
| 转æ¢çªå¤åèå符串为宽å符串 (彿°) | |
| 转æ¢å®½å符串为çªå¤åèå符串 (彿°) | |
| å®ä¹äºå¤´æä»¶
<cwchar> | |
| æ£æ¥ mbstate_t 对象æ¯å¦è¡¨ç¤ºåå§è¿ç§»ç¶æ (彿°) | |
| è¥å¯è½ï¼åå 宽ååèçªå符为宽å符 (彿°) | |
| è¥å¯è½ï¼åçªå宽å符为ååèçªå符 (彿°) | |
| ç»å®ç¶æï¼è¿åä¸ä¸ä¸ªå¤åèå符ä¸çåèæ° (彿°) | |
| ç»å®ç¶æï¼è½¬æ¢ä¸ä¸ªå¤åèå符为宽å符 (彿°) | |
| ç»å®ç¶æï¼è½¬æ¢å®½å符å°å
¶å¤åè表示 (彿°) | |
| ç»å®ç¶æï¼è½¬æ¢çªå¤åèå符串å°å®½å符串 (彿°) | |
| ç»å®ç¶æï¼è½¬æ¢å®½å符串为çªå¤åèå符串 (彿°) | |
| å®ä¹äºå¤´æä»¶
<cuchar> | |
| (C++20) |
转æ¢çªå¤åèå符为 UTF-8 ç¼ç (彿°) |
| (C++20) |
è½¬æ¢ UTF-8 å符串为çªå¤åèç¼ç (彿°) |
| (C++11) |
转æ¢çªå¤åèå符为 UTF-16 ç¼ç (彿°) |
| (C++11) |
è½¬æ¢ 16 ä½å®½å符为çªå¤åèå符串 (彿°) |
| (C++11) |
转æ¢çªå¤åèå符为 UTF-32 ç¼ç (彿°) |
| (C++11) |
è½¬æ¢ 32 ä½å®½å符为çªå¤åèå符串 (彿°) |
ç±»å
| å®ä¹äºå¤´æä»¶
<cwchar> | |
| è¿ä»£å¤åèå符串æéç转æ¢ç¶æä¿¡æ¯ (ç±») | |
å®
| å®ä¹äºå¤´æä»¶
<climits> | |
| MB_LEN_MAX |
å¤åèå符ä¸çæå¤§åèæ° (å®å¸¸é) |
| å®ä¹äºå¤´æä»¶
<cstdlib> | |
| MB_CUR_MAX |
å½å C æ¬å°ç¯å¢ä¸å¤åèå符çæå¤§åèæ° (å®åé) |
| å®ä¹äºå¤´æä»¶
<cuchar> | |
| __STDC_UTF_16__ |
æç¤º mbrtoc16 ä¸ c16rtomb ä½¿ç¨ UTF-16 ç¼ç (å®å¸¸é) |
| __STDC_UTF_32__ |
æç¤º mbrtoc32 ä¸ c32rtomb ä½¿ç¨ UTF-32 ç¼ç (å®å¸¸é) |