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