C++ Reference: Standard C++ Library reference: C Library: cuchar: mbrtoc32

C++官网参考链接:https://cplusplus.com/reference/cuchar/mbrtoc32/

函数 
<cuchar>
mbrtoc32
size_t mbrtoc32 ( char32_t * pc32, const char * pmb, size_t max, mbstate_t * ps);
将多字节序列转换为32位字符
pmb指向的多字节字符被转换为32位字符并存储在由pc32指向的位置。该函数返回多字节字符的字节长度(最多为max)。
如果定义了__STD_UTF_32__宏,则存储在pc32中的结果字符遵循UTF-32编码。
该函数使用(并更新)由ps描述的移位状态。如果ps是空指针,则该函数使用自己的内部移位状态,只有在必要时调用该函数才能更改该状态。
如果获得的字符与空32位字符相等,则该函数重置移位状态并返回0(在pc32存储空32位字符后)。
用空指针作为pmb调用函数也会重置移位状态,忽略形参pc32maxpc32中没有存储字符)。
这是mbrtowc<cwchar>)的char32_t版本。

形参 
pc32
指向char32_t类型对象的指针。
或者,这个实参可以是一个空指针,在这种情况下,函数不存储char32_t转换,但仍然返回字符的字节长度。
pmb
指向多字节字符的第一个字节的指针。
或者,可以用空指针调用函数,在这种情况下,函数会将移位状态(ps或它自己的内部状态)重置为初始状态并返回0。
max
pmb读取的最大字节的数量。
宏常量MB_CUR_MAX定义了在当前语言环境下可以形成多字节字符的最大字节数量。
size_t是无符号整型。
ps
指向定义转换状态的mbstate_t对象的指针。

返回值
用于产生32位字符的来自pmb的字节的数量。
如果这是空32位字符,或者pmb是空指针,函数返回0(在第一种情况下,空32位字符存储在pc32)。
如果多字节序列需要表示多个char32_t,并且尚未存储所有char32_t,则函数在pc32存储适当的移位字符后返回(size_t)-3。下次调用此函数时,使用与pmb相同的ps实参指向相同的地址,将生成表示多字节序列所需的char32_t字符序列中的下一个字符。
如果pmbmax的第一个字符构成一个不完整(但可能有效)的多字节字符,则函数返回(size_t)-2(没有值存储在pc32)。
否则,如果pmb所指向的字符没有形成有效的多字节字符(或多字节字符的开始),则函数返回(size_t)-1并将errno设置为EILSEQ(pc32中不存储任何值)。
注意,size_t是无符号整型,因此返回的值都不可能小于0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40186813

你的能量无可限量。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值