C++ 中的 c32rtomb() 函数将 32 位字符转换为窄多字节字符表示。
c32rtomb() 函数在<cuchar> 头文件中定义。
c32rtomb() 原型
size_t c32rtomb(char* s, char32_t c32, mbstate_t* ps);
c32rtomb() 函数将 utf-32 字符 c32
转换为其多字节等效字符,并将其存储在 s
指向的对象中。
如果s
表示一个空指针,则该调用等效于某些内部缓冲区 buf 的 c32rtomb(buf, U'\0', ps)。
如果 c32
是空宽字符,即 U'\0',则存储空字节。
参数:
s
:指向存储多字节字符的字符数组的指针。c32
:要转换的 32 位字符。ps
:指向解释多字节字符串时使用的 mbstate_t 对象的指针。
返回:
- 成功时,c32rtomb() 函数返回写入
s
指向的字符数组的字节数。 - 失败时,返回 -1 并将 errno 设置为EILSEQ.
示例:c32rtomb() 函数如何工作?
#include <cuchar>
#include <iostream>
using namespace std;
int main()
{
const char32_t str[] = U"C++ is super fast.";
char s[50];
mbstate_t ps{};
size_t length;
int j = 0;
while (str[j])
{
length = c32rtomb(s, str[j], &ps);
if ((length == 0) || (length > 50))
break;
for (int i=0; i<length; ++i)
cout << s[i];
++j;
}
return 0;
}
运行程序时,输出将是:
C++ is super fast.
相关用法
- C++ c32rtomb()用法及代码示例
- C++ clock()用法及代码示例
- C++ clog用法及代码示例
- C++ count()用法及代码示例
- C++ copy_n()用法及代码示例
- C++ complex cosh()用法及代码示例
- C++ copy()用法及代码示例
- C++ cbrt()用法及代码示例
- C++ count_if()用法及代码示例
- C++ c16rtomb()用法及代码示例
- C++ cin用法及代码示例
- C++ ctime()用法及代码示例
- C++ copy_backward()用法及代码示例
- C++ cosh()用法及代码示例
- C++ cout用法及代码示例
- C++ calloc()用法及代码示例
- C++ cos()用法及代码示例
- C++ copysign()用法及代码示例
- C++ cmath abs()用法及代码示例
- C++ copy_if()用法及代码示例
注:本文由纯净天空筛选整理自 C++ c32rtomb()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。