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

mbsrtowcs

函数  <cwchar>

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设置为空指针值, 并且结果状态保证是初始转换状态。

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

这是 mbstowcs (<cstdlib>)的 restartable 版本。

☲  参数



dest
指向wchar_t元素数组的指针,该数组的长度足以存储最大宽度的字符串。
如果这是一个空指针,函数不存储结果字符串, 但仍然计算从src形成一个有效字符串的字节数(在这种情况下,参数Max被忽略)。

src
指向要解释的C多字节字符串的指针(间接指针)。
该函数修改该值,如果转换提前停止,则指向最后一个转换的多字节字符, 如果函数到达结束的空字符,则指向空指针。

max
要写入dest的最大宽字符数。
size_t是一个无符号整型。

ps
指向定义转换状态的mbstate_t对象的指针。

☉  返回值



写入dest的宽字符数(不包括最终终止的空字符)。
如果在转换期间,函数遇到一个不能形成有效多字节字符的字节序列, 则函数将errno设置为EILSEQ并返回(size_t)-1 (src将指向不能被转换的第一个字节)。

注意,size_t是一个无符号整型,因此返回的值可能都不小于零。

🍄  另请参阅



mbrtowc 转换多字节序列为宽字符(function )
mbrlen 获取多字节字符的宽度(function )
wcsrtombs 转换宽字符字符串为多字节字符串(function)
mbrtowc 转换多字节序列为宽字符(function)

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