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