cplusplus
.com
教程
參考
文章
論壇
C++
教程
參考
文章
論壇
參考
C 庫
<cassert> (assert.h)
<cctype> (ctype.h)
<cerrno> (errno.h)
C++11
<cfenv> (fenv.h)
<cfloat> (float.h)
C++11
<cinttypes> (inttypes.h)
<ciso646> (iso646.h)
<climits> (limits.h)
<clocale> (locale.h)
<cmath> (math.h)
<csetjmp> (setjmp.h)
<csignal> (signal.h)
<cstdarg> (stdarg.h)
C++11
<cstdbool> (stdbool.h)
<cstddef> (stddef.h)
C++11
<cstdint> (stdint.h)
<cstdio> (stdio.h)
<cstdlib> (stdlib.h)
<cstring> (string.h)
C++11
<ctgmath> (tgmath.h)
<ctime> (time.h)
C++11
<cuchar> (uchar.h)
<cwchar> (wchar.h)
<cwctype> (wctype.h)
容器
C++11
<array>
<deque>
C++11
<forward_list>
<list>
<map>
<queue>
<set>
<stack>
C++11
<unordered_map>
C++11
<unordered_set>
<vector>
輸入/輸出
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
<ostream>
<sstream>
<streambuf>
多執行緒
C++11
<atomic>
C++11
<condition_variable>
C++11
<future>
C++11
<mutex>
C++11
<thread>
其他
<algorithm>
<bitset>
C++11
<chrono>
C++11
<codecvt>
<complex>
<exception>
<functional>
C++11
<initializer_list>
<iterator>
<limits>
<locale>
<memory>
<new>
<numeric>
C++11
<random>
C++11
<ratio>
C++11
<regex>
<stdexcept>
<string>
C++11
<system_error>
C++11
<tuple>
C++11
<type_traits>
C++11
<typeindex>
<typeinfo>
<utility>
<valarray>
<cuchar> (uchar.h)
函式
C++11
c16rtomb
C++11
c32rtomb
C++11
mbrtoc16
C++11
mbrtoc32
參考
<cuchar>
mbrtoc16
函式
<cuchar>
mbrtoc16
size_t mbrtoc16 ( char16_t * pc16, const char * pmb, size_t max, mbstate_t * ps);
將多位元組序列轉換為 16 位字元
pmb
所指向的多位元組字元被轉換為 16 位字元,並存儲在
pc16
指向的位置。函式返回多位元組字元的位元組長度(最大為
max
)。
如果
__STD_UTF_16__
宏被定義,則儲存在
pc16
的結果字元遵循 UTF-16 編碼。
該函式使用(並更新)由
ps
描述的轉換狀態。如果
ps
是一個空指標,該函式使用其自己的內部
轉換狀態
,該狀態僅在呼叫此函式時根據需要進行更改。
如果獲取的字元等同於空 16 位字元,函式會重置移位狀態並返回零(在將
空 16 位字元
儲存到
pc16
之後)。
使用空指標作為
pmb
呼叫該函式也會重置移位狀態,並忽略引數
pc16
和
max
(沒有字元儲存在
pc16
)。
這是
char16_t
版本的
mbrtowc
(
<cwchar>
)。
引數
pc16
指向一個
char16_t
.
型別物件的指標。或者,此引數可以是一個空指標,在這種情況下,函式不儲存
char16_t
的轉換,但仍然返回字元的位元組長度。
pmb
指向多位元組字元第一個位元組的指標。
或者,可以使用空指標呼叫該函式,在這種情況下,函式將轉換狀態(
ps
或其內部狀態)重置為初始狀態並返回零。
max
從
pmb
讀取的最大位元組數。
宏常量
MB_CUR_MAX
定義了在當前區域設定下,一個多位元組字元可以包含的最大位元組數。
size_t
是一個無符號整數型別。
ps
指向一個定義轉換狀態的
mbstate_t
物件的指標。
返回值
從
pmb
中用於產生 16 位字元的位元組數。
如果這是
空 16 位字元
,或者
pmb
是一個空指標,函式返回零(在第一種情況下,
空 16 位字元
被儲存在
pc16
)。
如果多位元組序列需要多於一個
char16_t
來表示,並且並非所有字元都已被儲存,函式返回
(
size_t
)-3
,在將適當的移位字元儲存到
pc16
之後。下一次使用相同的
ps
引數指向與
pmb
相同的地址來呼叫此函式時,將產生表示該多位元組序列所需的
char16_t
字元序列中的下一個字元。
如果
pmb
的前
max
個字元構成一個不完整(但可能有效)的多位元組字元,函式返回
(
size_t
)-2
(沒有值被儲存在
pc16
)。
否則,如果
pmb
指向的字元不構成一個有效的多位元組字元(或其開頭部分),函式返回
(
size_t
)-1
並設定
errno
為
EILSEQ
(沒有值被儲存在
pc16
)。
請注意,
size_t
是一個無符號整數型別,因此任何可能返回的值都不會小於零。
另見
c16rtomb
將 16 位字元轉換為多位元組序列
(函式)
mbrtoc32
將多位元組序列轉換為 32 位字元
(函式)
mbrtowc
將多位元組序列轉換為寬字元
(函式)