C++ 中的寬字元和庫函式


在本節中,我們將瞭解 C++ 中的寬字元是什麼。我們還將瞭解一些用於處理寬字元的函式。

寬字元類似於字元資料型別。主要區別在於 char 佔用 1 個位元組的空間,而寬字元佔用 2 個位元組(有時根據編譯器佔用 4 個位元組)的記憶體空間。對於 2 個位元組的空間,寬字元可以容納 64K(65536)個不同的字元。因此,寬字元可以容納 Unicode 字元。Unicode 值是國際標準,允許對幾乎所有語言的字元進行編碼。

示例

 線上演示

#include<iostream>
using namespace std;
int main() {
   wchar_t wide_character = L'a';
   cout << "The wide character is: " << wide_character << endl;
   cout << "Wide character size: " <<sizeof(wide_character);
}

輸出

The wide character is: 97
Wide character size: 2

我們可以看到,要建立寬字元,必須在字元字面量之前新增“L”。但是,使用 cout 輸出時,字元值不會顯示在輸出中。因此,要使用寬字元,必須使用 wcout,並且要獲取輸入,必須使用 wcin。

我們可以建立一些寬字元陣列,並將其列印為字串。

示例

 線上演示

#include<iostream>
using namespace std;
int main() {
   char str1[] = "This is character array";
   cout << str1 << endl;
   wchar_t str2 [] = L"This is wide character array";
   wcout << str2;
}

輸出

This is character array
This is wide character array

現在讓我們看看一些用於寬字元的函式。

函式描述
wcslen()語法為 size_t wcslen (const wchar_t* wcs); 此函式用於獲取寬字元字串的長度。
wcscat()語法為:wchar_t *wcscat(wchar_t *strDest, const wchar_t *strSrc); 此函式用於將源字串連線到目標字串。
wcscpy()語法為 wchar_t *wcscpy(wchar_t *strDest, const wchar_t *strSrc); 它有助於將源字串複製到目標字串。
wcsncpy()語法為 wchar_t* wcsncpy(wchar_t* dest, const wchar_t* src, size_t n); 此函式用於將源的前 n 個字元複製到目標。當源的結尾小於 n 時,目標中將包含一些空字元。
wcscmp()語法為 int wcscmp(const wchar_t* wcs1, const wchar_t* wcs2); 此函式用於比較兩個寬字元字串 wcs1 和 wcs2。它類似於用於普通字串比較的 strcmp() 函式。
wcsstr()語法為 const wchar_t* wcsstr (const wchar_t* wcs1, const wchar_t* wcs2); 此函式用於查詢 wcs2 在 wcs1 中的第一次出現。如果不存在,則返回 null。
wcstok()語法為 wchar_t* wcstok( wchar_t* str, const wchar_t* delim, wchar_t ** ptr); 此函式類似於 strtok()。它有助於對使用寬字元建立的字串進行標記化。它使用分隔符對字串進行標記化。

更新時間: 2019-07-30

3K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.