計算機程式設計 - 字元



如果在計算機程式設計中使用數字很容易,那麼使用字元就更容易了。字元是簡單的字母,如 a、b、c、d……、A、B、C、D……,但有一個例外。在計算機程式設計中,任何一位數字,如 0、1、2……以及特殊字元,如 $、%、+、-……等,也被視為字元,要將它們分配給字元型別變數,只需將它們放在單引號內即可。例如,以下語句定義了一個字元型別變數ch,並將值 'a' 分配給它:

char ch = 'a';

這裡,ch 是一個字元型別變數,可以儲存實現的字元集中的一個字元,而'a' 稱為字元字面量或字元常量。不僅 a、b、c……,當任何數字如 1、2、3……或任何特殊字元如 !、@、#、#、$……放在單引號內時,它們將被視為字元字面量,並且可以分配給字元型別變數,因此以下是一個有效的語句:

char ch = '1';

字元資料型別佔用 8 位記憶體,這意味著您可以在字元中儲存任何內容,其 ASCII 值介於 -127 到 127 之間,因此它可以儲存 256 個不同的值中的任何一個。字元資料型別可以儲存鍵盤上可用的任何字元,包括特殊字元,如 !、@、#、#、$、%、^、&、*、(、)、_、+、{、} 等。

請注意,您只能在單引號內保留單個字母或單個數字,並且不允許在單引號內使用多個字母或數字。因此,以下語句在 C 程式設計中無效:

char ch1 = 'ab';
char ch2 = '10';

下面是一個簡單的示例,它展示瞭如何在 C 程式語言中定義、賦值和列印字元:

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = 'a';      
   ch2 = '1';
   ch3 = '$';
   ch4 = '+';  

   printf( "ch1: %c\n", ch1);
   printf( "ch2: %c\n", ch2);
   printf( "ch3: %c\n", ch3);
   printf( "ch4: %c\n", ch4);
}

這裡,我們使用 %c 列印字元資料型別。當執行上述程式時,它會產生以下結果:

ch1: a
ch2: 1
ch3: $
ch4: +

轉義序列

許多程式語言都支援一個稱為轉義序列的概念。當一個字元前面帶有反斜槓 (\) 時,它被稱為轉義序列,並且對編譯器具有特殊含義。例如,以下語句中的 \n 是一個有效的字元,它被稱為換行符:

char ch = '\n';

這裡,字元n前面帶有反斜槓 (\),它具有特殊的含義,即換行,但請記住,反斜槓 (\) 僅對少數字符具有特殊含義。以下語句在 C 程式設計中沒有任何意義,並且將被視為無效語句:

char ch = '\1';

下表列出了 C 程式語言中可用的轉義序列:

轉義序列 描述
\t 在文字中的此位置插入製表符。
\b 在文字中的此位置插入退格符。
\n 在文字中的此位置插入換行符。
\r 在文字中的此位置插入回車符。
\f 在文字中的此位置插入換頁符。
\' '
\" "
\\ \

以下示例顯示了編譯器如何在 print 語句中解釋轉義序列:

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = '\t';      
   ch2 = '\n';

   printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}

當執行上述程式時,它會產生以下結果:

Test for tabspace     and a newline 
will start here

Java 中的字元

以下是 Java 中編寫的等效程式。Java 處理字元資料型別的方式與我們在 C 程式設計中看到的方式非常相似。但是,Java 為字元操作提供了額外的支援。

您可以嘗試執行以下程式以檢視輸出,該輸出必須與上述 C 示例生成的輸出相同。

public class DemoJava {
   public static void main(String []args) {
      char  ch1;
      char  ch2;
      char  ch3;
      char  ch4;
   
      ch1 = 'a';      
      ch2 = '1';
      ch3 = '$';
      ch4 = '+';  

      System.out.format( "ch1: %c\n", ch1);
      System.out.format( "ch2: %c\n", ch2);
      System.out.format( "ch3: %c\n", ch3);
      System.out.format( "ch4: %c\n", ch4);
   }
}

當執行上述程式時,它會產生以下結果:

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Java 也以與在 C 程式設計中使用相同的方式支援轉義序列。

Python 中的字元

Python 不支援任何字元資料型別,但所有字元都被視為字串,字串是字元序列。我們將在單獨的章節中學習字串。在 Python 中使用單個字元時,您無需進行任何特殊安排。

以下是 Python 中編寫的等效程式:

ch1 = 'a';      
ch2 = '1';
ch3 = '$';
ch4 = '+'; 

print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4

當執行上述程式時,它會產生以下結果:

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Python 以與在 C 程式設計中使用相同的方式支援轉義序列。

廣告