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相关推荐

  1. 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 ...

  2. link library 、target library、symbol library、synthetic library对照分析-基础小知识(九)

    文章目录 1.1 概念介绍 1.2 疑问解析 参考文档 DC 应用过程中涉及link library .target library.symbol library.synthetic library, ...

  3. 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: ...

  4. git fatal: cannot lock ref ‘HEAD‘:unable to resolve reference‘refs/heads/main‘:reference broken

    问题: push的时候,电脑强制关机再启动,vscode中所有文件都变成了绿色,暂存待提交状态 当我再次提交时,就出现错误:git fatal: cannot lock ref 'HEAD':unab ...

  5. undefined reference to 'floor'/undefined reference to

    undefined reference to 'floor'/undefined reference to `& undefined reference to 'pow'/undefined ...

  6. 问题排查--@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 ...

  7. C++ Reference: Standard C++ Library reference: C Library: cmath: cbrt

    C++官网参考链接:https://cplusplus.com/reference/cmath/cbrt/ 函数  <cmath> <ctgmath> cbrt C99 dou ...

  8. C++ Reference: Standard C++ Library reference: C Library: cmath: erf

    C++官网参考链接:https://cplusplus.com/reference/cmath/erf/ 函数  <cmath> <ctgmath> erf C99 doubl ...

  9. C++ Reference: Standard C++ Library reference: C Library: cstdio: printf

    C++官网参考链接:https://cplusplus.com/reference/cstdio/printf/ 函数  <cstdio> printf int printf ( cons ...

最新文章

  1. python kafka 生产
  2. xmind修改默认配置
  3. css和js和html代码,网页代码中js和css指的是什么?
  4. android 等待动画 库,android--AnimationDrawable实现等待动画效果
  5. 用Python模拟浏览器操作
  6. php 安装mysql扩展注意事项
  7. 为啥查询那么慢?看完你就明白了!
  8. w10 桌面计算机垃圾桶,解答win10我的电脑怎么放在桌面
  9. java 图片 pdf_Java 添加图片到PDF
  10. 2021年部分节假日放假安排公布
  11. 什么是数据分析,我们为什么要做数据分析?
  12. web前端--面试题
  13. Eclipse 简介
  14. matlab plot x y定义,plot是什么意思_matlab中plot(x)的是什么意思?
  15. 感谢生活--vlink虚拟链路的实现及原理
  16. python爬楼梯多少种_Python 爬楼梯问题--有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法?...
  17. 田亮晒森碟与海豚亲吻照 父女开心超有爱
  18. 实验二利用自动机理论实现词法分析器
  19. 直饮加热一体机哪个牌子好,净水器科普
  20. CI Weekly #9 | 揭秘阿里 Docker 化实践之路

热门文章

  1. Rethinking the value of network pruning
  2. 首创置业“中国之家-和园”将在巴黎开工奠基
  3. 无线网phcp服务器异常,dhcp怎么设置_dhcp服务异常怎么修复
  4. 2021年全国知识图谱与语义计算大会
  5. 家电零部件展丨家电供应链展——CAEE家电与电子电器供应链博览会(广东、上海、合肥、青岛)
  6. 【原创】窥视懒人的秘密---android下拉刷新开启手势的新纪元
  7. 【Tableau】各类别的商品中销量前十的品牌(子类别排序)
  8. 游戏开发心得——书籍篇——《游戏引擎框架》-专业工具
  9. 机器人军团防护罩_超级机器人大战w流程攻略
  10. 《单身狗重复文件清理软件v1》使用计数器