C++ 字元 (char) 資料型別



C++ 中的**字元 (char) 資料型別**代表字母數字值,可以是各種各樣的字元。這些字元可能包括字母,如 'a'、'b' 和 'c',數字,如 '1'、'2' 和 '3',符號,如 '#'、'$' 和 '&',以及更多。

**字元資料型別**佔用 1 位元組(即 8 位)的記憶體空間來儲存字元。在 C++ 中,關鍵字“**char**”用於宣告字元變數。

在本教程中,我們將進一步探討字元資料型別及其對應的變數。

使用字元 (char) 資料型別

以下是字元 (char) 資料型別的一些用途:-

  • 當我們只需要儲存單個字元並且不需要 字串 的開銷時,使用**char** 資料型別。
  • **char** 資料型別也可以以原始形式用作陣列,而無需使用字串字面量。
  • ASCII 形式中,**char** 資料型別可以用來表示數值,反之亦然。

char 資料型別的取值

C++ 中的字元 (char) 資料型別可以有多個值,這些值如下:-

  • 大寫字母,如 A、B、Z 等。
  • 小寫字母,如 a、b、z 等。
  • 符號,如 $、%、& 等。
  • 轉義序列,這將在本文後面討論。

建立字元 (char) 變數

我們可以使用“char”關鍵字後跟變數名來宣告字元變數。

語法

使用以下語法建立 char 型別變數:-

char variable_name = [value];

這裡,[value] 是可選的,可以在宣告時用於賦值。

示例

在下面的示例中,我們聲明瞭一個 char 變數,併為其賦值。

// C++ program to demonstrate
// Character data type
#include <iostream> 
using namespace std;

int main(){ 
   char ch;
   return 0; 
}

字元 (char) 資料型別的示例

以下示例顯示了不同字元資料型別的用法:-

// C++ program to demonstrate
// Character data type
#include <iostream>
using namespace std;

int main() { 
   char ch,ch1,ch2;
   ch='a';     //this is an alphabet
   ch1='&';    //this is a symbol
   ch2='1';   //this is a number
   cout<<ch<<endl<<ch1<<endl<<ch2<<endl;    
   return 0; 
}

輸出

a
&
1

字元的 ASCII 值

ASCII 代表“美國資訊交換標準程式碼”。它是分配給不同字元和符號的第一組編碼值。現代計算機、HTML 和網際網路中使用的字元集都基於 ASCII。

ASCII 表描述了所有字元型別的數值,這些值可用於宣告字元,而無需顯式使用字元本身。它包含數字 0-9、A 到 Z 的大小寫英文字母以及一些特殊字元。

以下資料提供了 C++ 中所有可用字元的 ASCII 值的參考:-

ASCII Range of 'a' to 'z' =  97-122
ASCII Range of 'A' to 'Z' =  65-90
ASCII Range of '0' to '9' = 48-57

顯示 ASCII 宣告的示例

以下示例顯示了使用者如何使用 ASCII 值宣告字元變數,而無需顯式使用字元本身:-

#include <iostream>
using namespace std; 

int main() { 
   char ch,ch1,ch2;
   ch=65;     //this is an alphabet
   ch1=45;    //this is a symbol
   ch2=55;   //this is a number
   cout<<ch<<endl<<ch1<<endl<<ch2<<endl;    

   return 0; 
}

輸出

A
-
7

字元變數的隱式轉換

可以使用 ASCII 參考將字元變數隱式轉換為其整數值,反之亦然。因此,當我們在 C++ 中宣告一個字元時,我們可以引用其 ASCII 值,而 ASCII 數值也可以用於訪問其字元值。這是透過資料型別的隱式轉換或型別轉換來完成的。

我們可以新增我們需要將給定變數轉換為的資料型別的關鍵字,編譯器會自動更改資料型別。例如,如果我們寫 char(97),它將載入 ASCII 數字 97 的字元值,即 'a'。對於將字元資料型別轉換為整數(ASCII)值,這同樣適用。

以下示例清楚地說明了這一點:-

示例

以下示例顯示了 char 到 int 以及 int 到 char 的隱式型別轉換:-

#include <iostream>
using namespace std;

int main() {
   char c = '$';
   int a = 97;
   cout << "The Corresponding ASCII value of '$' : ";
   cout << int(c) << endl;

   cout << "The Corresponding  character value of 97 : ";
   cout << char(a) << endl;

   return 0;
}

輸出

The Corresponding ASCII value of '$' : 36
The Corresponding  character value of 97 : a

C++ 中的轉義序列

以反斜槓 (“\”) 開頭的字元變數稱為轉義序列。它們決定了編譯器輸出視窗上的輸出序列。在這種情況下,反斜槓也稱為“跳脫字元”。

下表顯示了 C++ 中可用的不同型別的轉義序列:-

序號 轉義序列 字元
1. \n 換行
2. \\ 反斜槓
3. \t 水平製表符
4. \v 垂直製表符
5. \0 空字元

以下示例程式碼清楚地說明了轉義序列的用法:-

示例 1

#include <iostream>
using namespace std;

int main() {
   char a = 'H';
   char b = 'E';
   char c = 'Y';
   char d = '\n'; //enter new line
   char e = '\t'; //tab to enter space 
   cout << a << b << c << d << a << b << c << e << a << b << c;
   return 0;
}

輸出

HEY	HEYHEY
HEY	HEY

跳脫字元還可以用於將特殊字元插入字串中。以下示例清楚地說明了這一點:-

示例 2

#include <iostream>
using namespace std;
 
int main() {
   //string txt = "Hey, where are you "vikas" ? ";
   //this throws error
   string txt = "Hey, where are you \"vikas\"? ";

   cout<<txt<<endl;
   return 0; 
}

輸出

Hey, where are you "vikas"? 
廣告