Home C&C++函数库 c++ 语法 程序源码 Linux C库

mbstowcs

函数   <cstdlib>

size_t mbstowcs (wchar_t* dest, const char* src, size_t max);
转换多字节字符串到宽字符字符串

将src指向的多字节序列转换为等效的宽字符序列(存储在dest指向的数组中), 直到转换了max 宽字符或在多字节序列src中遇到空字符(也被转换和存储),但不计入函数返回的长度)。

如果成功地转换了max字符,则存储在dest中的字符串不会以空结束。

这个函数的行为取决于所选C语言环境的LC_CTYPE类别。

☲  参数



dest
指向wchar_t元素数组的指针,该数组的长度足以包含结果序列(最多,最大宽度字符)。

src
要解释的多字节字符的c字符串。
多字节序列应在初始移位状态开始。

max
要写入dest的wchar_t字符的最大数目。
Size_t是一个无符号整型。

☉  返回值



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

↭  数据竞争



函数访问src指向的数组,并修改dest指向的数组。

函数也可以访问和修改一个内部状态对象,如果实现使用一个静态对象 (参阅mbsrtowcs以获得可以使用外部状态对象的替代方法),则可能导致对该函数的并发调用发生数据竞争。

同时更改区域设置也可能会引入数据竞争。

❆  异常(c++)



无抛出保证:这个函数不抛出异常。

如果dest没有指向一个足够长的数组来包含翻译后的序列,或者src不是以空结束的, 或者没有包含足够的字节来生成最大宽度的字符(或者如果它不是在初始移位状态开始),它将导致未定义的行为。

🍄  另请参阅



mblen 获取多字节字符的长度(function)
mbtowc 转换多字节序列为宽字符(function)
wcstombs 转换宽字符字符串为多字节字符串(function)

联系我们 免责声明 关于CandCplus 网站地图