字符型數據包括字符常量、字符變量,是程序處理文本、控制輸出格式、進行編碼轉換的核心。本文系統梳理字符常量規則、轉義字符表、字符變量存儲與 ASCII 碼運算實戰。
'a' '=' '+' '?'。'5' 與整數 5 完全不同,'5' 不能直接參與數值運算。以反斜線 \ 開頭,賦予特殊含義:
| 轉義字符 | 含義 | 轉義字符 | 含義 |
|---|---|---|---|
| \n | 換行 | \t | 水平跳格 |
| \v | 垂直跳格 | \b | 退格 |
| \r | 回車 | \f | 換頁 |
| \\ | 反斜線 | \' | 單引號 |
| \a | 響鈴 | \ddd | 1~3位八進制 ASCII |
| \xhh | 1~2位十六進制 ASCII |
通用表示法: 任何字符均可用 \ddd(八進制)或 \xhh(十六進制)表示。例:\101='A',\x0A='\n'。
int a=5,b=6,c=7;
printf("%d\n\t%d %d\n %d %d\t\b%d\n", a,b,c,a,b,c);
/*
輸出:
5
6 7
5 6 7
*/
解析:\n 換行,\t 跳到下一制表位,\b 退格一格導致 6 與 7 緊挨。
char,佔 1 字節,存 ASCII 碼(如 'x'→120, 'y'→121)。char a = 120; 輸出 %c 顯示 'x',%d 顯示 120。char a='x', b='y';
a = a - 32; // 'x'(120) - 32 = 88 → 'X'
b = b - 32; // 'y'(121) - 32 = 89 → 'Y'
printf("%c,%c\n%d,%d\n", a,b,a,b); // 輸出 X,Y 及 88,89
利用大小寫字母 ASCII 碼差 32 實現轉換,展示字符參與算術運算的本質:操作的是 ASCII 碼值。
char c = getchar(); // 讀取鍵盤單字符
putchar(c); // 回顯
printf("%d", c); // 輸出 ASCII 碼
#include <stdio.h>。char a,b,c;
scanf("%c %c %c", &a,&b,&c); // 格式串有空格,允許分隔符
printf("%d,%d,%d\n%c,%c,%c\n", a,b,c, a-32,b-32,c-32);
徹底理解字符在內存中以 ASCII 碼存儲、格式符決定輸出形式、轉義字符控制輸出佈局、字符運算實為整數運算,是玩轉 C 語言文本處理的關鍵。