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>
<cwchar> (wchar.h)
函式
btowc
fgetwc
fgetws
fputwc
fputws
fwide
fwprintf
fwscanf
getwc
getwchar
mbrlen
mbrtowc
mbsinit
mbsrtowcs
putwc
putwchar
swprintf
swscanf
ungetwc
vfwprintf
C++11
vfwscanf
C++11
vswprintf
C++11
vswscanf
vwprintf
C++11
vwscanf
wcrtomb
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstod
C++11
wcstof
wcstok
wcstol
C++11
wcstold
C++11
wcstoll
wcstoul
C++11
wcstoull
wcsxfrm
wctob
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wprintf
wscanf
型別
mbstate_t
size_t
struct tm
wchar_t
wint_t
宏常量
NULL
WCHAR_MAX
WCHAR_MIN
WEOF
參考
<cwchar>
mbsrtowcs
函式
<cwchar>
mbsrtowcs
size_t mbsrtowcs (wchar_t* dest, const char** src, size_t max, mbstate_t* ps);
將多位元組字串轉換為寬字元字串
將
src
指向的多位元組序列轉換為等效的寬字元序列(儲存在
dest
指向的陣列中),直到已轉換
max
個寬字元,或者在多位元組序列
src
中遇到一個
空字元
(該空字元也會被轉換和儲存,但不計入函式返回的長度中)。
如果成功轉換了
max
個字元,則儲存在
dest
中的結果字串不會以空字元結尾。
該函式使用(並更新)由
ps
描述的轉換狀態。如果
ps
是一個空指標,該函式使用其自己的內部
轉換狀態
,該狀態僅在呼叫此函式時根據需要進行更改。
如果函式轉換了整個多位元組字串(直到找到空字元),並且
dest
不是空指標,則函式將
src
設定為空指標值,並保證結果狀態為初始轉換狀態。
此函式的行為取決於所選
LC_CTYPE
C locale
的類別。
這是
mbstowcs
(
<cstdlib>
) 的
可重入
版本。
引數
dest
指向一個
wchar_t
陣列的指標,該陣列足夠長,可以儲存一個包含
max
個寬字元的字串。
如果這是一個空指標,函式不會儲存結果字串,但仍會計算
src
中有多少位元組構成一個有效的字串(在這種情況下,
max
引數被忽略)。
src
指向待解釋的 C 多位元組字串的指標(一個間接指標)。
如果轉換提前停止,函式會修改此值,使其指向最後一個被轉換的多位元組字元之後的位置;如果函式到達了終止空字元,則此值會被修改為 null 指標。
max
要寫入
dest
的最大寬字元數。
size_t
是一個無符號整數型別。
ps
指向一個定義轉換狀態的
mbstate_t
物件的指標。
返回值
寫入到
dest
的寬字元數(不包括可能有的終止空字元)。
如果在轉換過程中,函式遇到了一個不能構成有效多位元組字元的位元組序列,函式會設定
errno
為
EILSEQ
並返回
(
size_t
)-1
(
src
將指向第一個無法轉換的位元組。
請注意,
size_t
是一個無符號整型型別,因此可能返回的值中沒有一個是小於零的。
另見
mbstowcs
將多位元組字串轉換為寬字串
(函式)
wcsrtombs
將寬字串轉換為多位元組字串
(函式)
mbrlen
獲取多位元組字元的長度
(函式)
mbrtowc
將多位元組序列轉換為寬字元
(函式)