C/C++语言中的c32rtomb()函数?


在C ++语言中,我们可以使用 32 位字符表示。c32rtomb() 函数用于将 32 位字符表示转换成窄的、多字节字符表示。我们可以在 uchar.h 头文件中找到此函数。

此函数接受三个参数。它们是:

  • 存储多字节字符的字符串
  • 要转换的 32 位字符
  • 类型为 mbstate_t 对象的指针。该指针用于解释多字节字符串。

此函数返回写入字符数组的字节数,如果成功则返回 -1。让我们看一个示例以更好地理解。

示例

 在线示例

#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main() {
   const char32_t myStr[] = U"Hello World";
   char dest[50];
   mbstate_t p{};
   size_t length;
   int j = 0;
   while (myStr[j]) {
      length = c32rtomb(dest, myStr[j], &p); //get length from c32rtomb() method
      if ((length == 0) || (length > 50))
         break;
      for (int i = 0; i < length; ++i)
         cout << dest[i];
         j++;
   }
}

输出

Hello World

更新于:30-Jul-2019

113 次浏览

开启你的 职业生涯

完成本课程,并获得认证

开始学习
广告