C++ 库 - <cuchar>



C++ 中的<cuchar> 头文件提供窄字符和宽字符编码之间转换的功能,尤其适用于 UTF-8、UTF-16 和 UTF-32 格式。它弥合了 C 风格字符处理和现代 C++ 宽字符之间的差距,确保字符数据能够在不同类型之间高效转换。

此头文件包含 C 标准库 <uchar.h> 函数,提供与 C++ 兼容的接口。常用的 C++ <cuchar> 复制函数如下所示,以及它们的描述。

包含 <cuchar> 头文件

要在 C++ 程序中包含 <cuchar> 头文件,可以使用以下语法。

#include <cuchar>

<cuchar> 头文件的函数

以下是 <cuchar> 头文件中所有函数的列表。

序号 函数及描述
1 mbrtoc16

它将窄多字节字符转换为 UTF-16 编码。

2 c16rtomb

它将 16 位宽字符转换为窄多字节字符串。

3 mbrtoc32

它将窄多字节字符转换为 UTF-32 编码。

4 c32rtomb

它将 32 位宽字符转换为窄多字节字符串。

5 mbrtoc8

它将窄多字节字符转换为 UTF-8 编码。

6 c8rtomb

它将 UTF-8 字符串转换为窄多字节编码。

将多字节字符串转换为宽字符串

在下面的示例中,我们将多字节字符串转换为宽字符串。

#include <iostream>
#include <cuchar>
int main() {
   const char * x = "TutorialsPoint";
   wchar_t y[50];
   size_t a = mbstowcs(y, x, sizeof(y) / sizeof(wchar_t));
   if (a != (size_t) - 1) {
      std::wcout <<  "Result : " << y << std::endl;
   } else {
      std::cerr << "Conversion failed!" << std::endl;
   }
   return 0;
}

输出

以上代码的输出如下:

Result : TutorialsPoint

计算长度

考虑下面的示例,我们将获取宽字符字符串的长度。

#include <iostream>
#include <cuchar>
int main() {
   const wchar_t * x = L "Welcome";
   size_t y = wcslen(x);
   std::wcout << L "Result : " << y << std::endl;
   return 0;
}

输出

以上代码的输出如下:

Result : 7
广告