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>
<cstdlib> (stdlib.h)
函数
C++11
_Exit
abort
abs
C++11
at_quick_exit
atexit
atof
atoi
atol
C++11
atoll
bsearch
calloc
div
exit
free
getenv
labs
ldiv
C++11
llabs
C++11
lldiv
malloc
mblen
mbstowcs
mbtowc
qsort
C++11
quick_exit
rand
realloc
srand
strtod
C++11
strtof
strtol
C++11
strtold
C++11
strtoll
strtoul
C++11
strtoull
system
wcstombs
wctomb
函数 (非标准)
itoa
类型
div_t
ldiv_t
C++11
lldiv_t
size_t
宏常量
EXIT_FAILURE
EXIT_SUCCESS
MB_CUR_MAX
NULL
RAND_MAX
参考
<cstdlib>
mbstowcs
函数
<cstdlib>
mbstowcs
size_t mbstowcs (wchar_t* dest, const char* src, size_t max);
将多字节字符串转换为宽字符字符串
将
src
指向的多字节字符序列转换为等效的宽字符序列(存储在
dest
指向的数组中),直到转换了
max
个宽字符,或者直到遇到多字节字符序列
src
中的空字符(该空字符也会被转换并存储,但在函数返回的长度中不计)。
如果成功转换了
max
个字符,则存储在
dest
中的结果字符串将不以空字符结尾。
此函数的行为取决于所选
C locale
的
LC_CTYPE
类别。
参数
dest
指向一个足够大的
wchar_t
元素数组的指针,该数组可以容纳结果序列(最多
max
个宽字符)。
src
包含要解释的多字节字符的 C 字符串。
多字节字符序列应以初始移位状态开始。
max
要写入
dest
的
wchar_t
字符的最大数量。
size_t
是一个无符号整数类型。
返回值
写入
dest
的宽字符数量,不包括最终的*终止空字符*。
如果遇到无效的多字节字符,则返回
(
size_t
)-1
。
请注意,
size_t
是无符号整数类型,因此返回的任何值都不会小于零。
数据竞争
该函数会访问
src
指向的数组,并修改
dest
指向的数组。
该函数还可能访问和修改内部状态对象,如果实现使用了静态对象(请参阅
mbsrtowcs
以了解可使用外部状态对象的替代方案),这可能导致并发调用此函数时出现数据竞争。
并发地更改 locale 设置也可能引入数据竞争。
异常 (C++)
无抛出保证:
此函数不会抛出异常。
如果
dest
指向的数组不足以容纳转换后的序列,或者
src
不是以空字符结尾或不包含足够的字节来生成
max
个宽字符(或者它没有以初始移位状态开始),则会导致*未定义行为*。
另见
mblen
获取多字节字符的长度
(函数)
mbtowc
将多字节序列转换为宽字符
(函数)
wcstombs
将宽字符串转换为多字节字符串
(函数)