| 範圍 | 類別 | 含義 | 常見字元 |
|---|---|---|---|
| 0-31, 127 | 控制字元 (非列印) | 裝置控制、通訊協議、格式控制 | NUL(0), SOH(1), STX(2), ETX(3), EOT(4), ENQ(5), ACK(6), BEL(7/\a), BS(8/\b), HT(9/\t), LF(10/\n), VT(11/\v), FF(12/\f), CR(13/\r), SO(14), SI(15), DLE(16), DC1-4(17-20), NAK(21), SYN(22), ETB(23), CAN(24), EM(25), SUB(26), ESC(27), FS(28), GS(29), RS(30), US(31), DEL(127) |
| 32 | 空白 | Space | ' ' |
| 33-47 | 標點/運算符 | ! " # $ % & ' ( ) * + , - . / | |
| 48-57 | 數字 | 0-9 | 0 1 2 3 4 5 6 7 8 9 |
| 58-64 | 標點/運算符 | : ; < = > ? @ | |
| 65-90 | 大寫字母 | A-Z | A B C ... Z |
| 91-96 | 標點 | [ \ ] ^ _ ` | |
| 97-122 | 小寫字母 | a-z | a b c ... z |
| 123-126 | 標點 | { | } ~ |
第 8 位 (bit 7) 用於擴展字符集,不同編碼頁 (Code Page) 定義不同:
→ CP437 (IBM PC 原生):繪圖字符、希臘字母、數學符號。
→ CP936 (GBK/GB2312 兼容):中文漢字雙位元組編碼 (高位≥128)。
→ CP1252 (Windows ANSI 西歐語):常見西歐語言字符 (€、™、智慧引號等)。
→ ISO-8859-1 (Latin-1):西歐語言子集,128-159 為控制字元保留。
char 有號性實現定義:`-128~127` 或 `0~255`。處理原始位元組請用 unsigned char 或 uint8_t。#define IS_CTRL(c) ((c) < 32 || (c) == 127)
#define IS_PRINT(c) ((c) >= 32 && (c) <= 126)
#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9')
#define IS_UPPER(c) ((c) >= 'A' && (c) <= 'Z')
#define IS_LOWER(c) ((c) >= 'a' && (c) <= 'z')
#define IS_HEX(c) (IS_DIGIT(c) || ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f'))