C++ Reference: Standard C++ Library reference: C Library: cuchar: c32rtomb
C++官网参考链接:https://cplusplus.com/reference/cuchar/c32rtomb/
函数
<cuchar>
c32rtomb
size_t c32rtomb ( char * pmb, char32_t c32, mbstate_t * ps );
将32位字符转换为多字节序列
32位字符c32被转换为其等价多字节,并存储在pmb指向的数组中。函数返回由pmb指向的等价多字节序列的字节长度。
如果定义了__STD_UTF_32__,c32将遵循UTF-32编码。
该函数使用(并更新)由ps描述的移位状态。如果ps是空指针,则该函数使用自己的内部移位状态,只有在必要时调用该函数才能更改该状态。
如果c32是一个空32位字符,该函数将重置移位状态并存储一个空字节,前面是恢复初始移位状态所需的任何移位序列。
使用空指针作为pmb调用函数也会重置移位状态(并忽略形参c32)。
这是wcrtomb的char32_t版本(<cwchar>)。
形参
pmb
指向足以容纳多字节序列的数组的指针。
当前语言环境中字符的多字节序列的最大长度是MB_CUR_MAX字节。
或者,可以用空指针调用函数,在这种情况下,函数会将移位状态(ps或它自己的内部状态)重置为初始状态并返回0。
c32
char32_t类型的32位字符。
ps
指向定义转换状态的mbstate_t对象的指针。
返回值
以pmb写入的多字节序列的字节大小,包括任何移位字符。这可能是0。
如果没有字符对应,函数返回(size_t)-1并将errno设置为EILSEQ。
如果pmb是空指针,则函数在pmb上不存储字节,因此返回0。
用例
/* c32rtomb example */
#include <wchar.h>
#include <uchar.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
const char32_t* pt = U"Juan Souli\u00e9";
char buffer [MB_CUR_MAX];
int i;
size_t length;
mbstate_t mbs;
mbrlen (NULL,0,&mbs); /* initialize mbs */
while (*pt) {
length = c32rtomb(buffer,*pt,&mbs);
if ((length==0)||(length>MB_CUR_MAX)) break;
for (i=0;i<length;++i) putchar (buffer[i]);
++pt;
}
return 0;
}
可能的输出:
C++ Reference: Standard C++ Library reference: C Library: cuchar: c32rtomb相关推荐
- Conditional project or library reference in Visual Studio
Conditional project or library reference in Visual Studio In case you were wondering why you haven't ...
- link library 、target library、symbol library、synthetic library对照分析-基础小知识(九)
文章目录 1.1 概念介绍 1.2 疑问解析 参考文档 DC 应用过程中涉及link library .target library.symbol library.synthetic library, ...
- undefined reference to `__stack_chk_guard' .. undefined reference to `__stack_chk_fail'
1. 编译出错 undefined reference to `__stack_chk_guard' undefined reference to `__stack_chk_fail' 解决方法-1: ...
- git fatal: cannot lock ref ‘HEAD‘:unable to resolve reference‘refs/heads/main‘:reference broken
问题: push的时候,电脑强制关机再启动,vscode中所有文件都变成了绿色,暂存待提交状态 当我再次提交时,就出现错误:git fatal: cannot lock ref 'HEAD':unab ...
- undefined reference to 'floor'/undefined reference to
undefined reference to 'floor'/undefined reference to `& undefined reference to 'pow'/undefined ...
- 问题排查--@cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference broken解决方法
@cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference broken解决 作者用的是ID ...
- C++ Reference: Standard C++ Library reference: C Library: cmath: cbrt
C++官网参考链接:https://cplusplus.com/reference/cmath/cbrt/ 函数 <cmath> <ctgmath> cbrt C99 dou ...
- C++ Reference: Standard C++ Library reference: C Library: cmath: erf
C++官网参考链接:https://cplusplus.com/reference/cmath/erf/ 函数 <cmath> <ctgmath> erf C99 doubl ...
- C++ Reference: Standard C++ Library reference: C Library: cstdio: printf
C++官网参考链接:https://cplusplus.com/reference/cstdio/printf/ 函数 <cstdio> printf int printf ( cons ...
最新文章
- python kafka 生产
- xmind修改默认配置
- css和js和html代码,网页代码中js和css指的是什么?
- android 等待动画 库,android--AnimationDrawable实现等待动画效果
- 用Python模拟浏览器操作
- php 安装mysql扩展注意事项
- 为啥查询那么慢?看完你就明白了!
- w10 桌面计算机垃圾桶,解答win10我的电脑怎么放在桌面
- java 图片 pdf_Java 添加图片到PDF
- 2021年部分节假日放假安排公布
- 什么是数据分析,我们为什么要做数据分析?
- web前端--面试题
- Eclipse 简介
- matlab plot x y定义,plot是什么意思_matlab中plot(x)的是什么意思?
- 感谢生活--vlink虚拟链路的实现及原理
- python爬楼梯多少种_Python 爬楼梯问题--有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法?...
- 田亮晒森碟与海豚亲吻照 父女开心超有爱
- 实验二利用自动机理论实现词法分析器
- 直饮加热一体机哪个牌子好,净水器科普
- CI Weekly #9 | 揭秘阿里 Docker 化实践之路
热门文章
- Rethinking the value of network pruning
- 首创置业“中国之家-和园”将在巴黎开工奠基
- 无线网phcp服务器异常,dhcp怎么设置_dhcp服务异常怎么修复
- 2021年全国知识图谱与语义计算大会
- 家电零部件展丨家电供应链展——CAEE家电与电子电器供应链博览会(广东、上海、合肥、青岛)
- 【原创】窥视懒人的秘密---android下拉刷新开启手势的新纪元
- 【Tableau】各类别的商品中销量前十的品牌(子类别排序)
- 游戏开发心得——书籍篇——《游戏引擎框架》-专业工具
- 机器人军团防护罩_超级机器人大战w流程攻略
- 《单身狗重复文件清理软件v1》使用计数器