本單元重點回顧
字元的本質是 ASCII 編號:電腦存字元=存編號。可顯示字元佔編號 32 \sim 126,控制字元負責動作(換行、Tab)。
三大區段,記相對關係:
'0'~'9'、'A'~'Z'、'a'~'z'各自連續;數字 < 大寫 < 小寫;同字母大小寫差 32。編號本身不用背。字元 ↔ 整數靠轉型與相減:
(int)c查編號、(char)n查字元;c - '0'把數字字元變數值、'0' + d變回來——讓編譯器查表,你記相對距離。integer promotion:字元參與運算前先變
int,結果不會自動變回字元——「算出來的字元」要輸出,先(char)。兩種讀入:
cin >> c跳過空白換行、cin.get(c)一個都不放過。混用時小心殘留的換行。cctype 函式家族:
isdigit、isalpha、isupper……判斷回傳非零/零,別跟 1 比較;toupper/tolower回傳int。C 字串=字元陣列+
'\0'結尾:長度由'\0'決定,跟陣列大小無關。陣列大小永遠比長度上限至少多 1。cin >> s讀單詞、cout << s印到'\0':讀入自動補結尾;整行讀入用cin.getline。(延伸)cstring 函式庫:
strlen算長度(先存變數,別放迴圈條件——長字串會 TLE)、strcpy複製、strcat串接、strcmp比較;目標陣列自己開夠大。(延伸)字典序:逐格比、第一個不同處定勝負、先結束者小。比較一律
strcmp跟 0 比——==比的是位址,== 1是未保證的行為。