C++ Reference: Standard C++ Library reference: C Library: cstdlib: mbstowcs

C++官网参考链接:https://cplusplus.com/reference/cstdlib/mbstowcs/

函数 

mbstowcs
size_t mbstowcs(wchar_t* dest, const char* src, size_t max);
将多字节字符串转换为宽字符字符串
将src指向的多字节字符串转换为等效的宽字符字符串(存储在dest指向的数组中),直到转换了max个宽字符,或者在多字节字符串src中遇到空字符(也被转换和存储,但不计入函数返回的长度中)。
如果max个字符被成功转换,则存储在dest中的结果字符串不是以空结尾的。
此函数的行为取决于所选C区域设置(C locale)的LC_CTYPE类别。

形参
dest
指向wchar_t元素数组的指针,其长度足以包含结果序列(最多max个宽字符)。
src
带有要解释的多字节字符的C字符串。
多字节序列应在初始移位状态开始。
max 
可写入dest的最大wchar_t字符数。
size_t是无符号整型。

返回值
写入dest的wchar_t字符数,不包括最终终止的空字符。
如果遇到无效的多字节字符,则返回(size_t)-1值。
注意,size_t是无符号整型,因此返回的值都不可能小于零。

数据竞争
函数访问由src指向的数组,并修改由dest指向的数组。
该函数还可以访问和修改内部状态对象,如果实现使用静态对象,则可能导致对该函数的并发调用出现数据竞争(参见mbsrtowcs了解可以使用外部状态对象的替代方案)。
同时更改区域设置还可能导致数据竞争。

异常(C++) 
无抛出保证:此函数不抛出异常。
如果dest没有指向一个足够长的数组来包含翻译后的序列,或者src不是以空结尾的,或者没有包含足够的字节来生成max个宽字符(或者它没有以初始移位状态开始),它会导致未定义的行为。

另请参考
mblen    Get length of multibyte character (function)
mbtowc    Convert multibyte sequence to wide character (function)
wcstombs    Convert wide-character string to multibyte string (function) 

你可能感兴趣的:(C++,Reference,C,Library,c++,c语言,mbstowcs,转换多字节字符串为宽字符字符串)