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
廣告