從標準輸入讀取字元,直到 EOF(Windows Ctrl+Z,Linux/macOS Ctrl+D):
ch - 32)。ch + 32)。0-9 直接跳過(continue)。#includeint main() { int ch = 0; while ((ch = getchar()) != EOF) { if (ch >= 'a' && ch <= 'z') { ch = ch - 32; // 小寫轉大寫 } else if (ch >= 'A' && ch <= 'Z') { ch = ch + 32; // 大寫轉小寫 } else if (ch >= '0' && ch <= '9') { continue; // 跳過數字,不輸出 } putchar(ch); // 輸出轉換後字元 } return 0; }
int ch 必須宣告為 int 以容納 EOF(通常為 -1)。'a' - 'A' == 32)。putchar 不被執行,達到「過濾數字」目的。ctype.h#include/* ... */ if (islower(ch)) ch = toupper(ch); else if (isupper(ch)) ch = tolower(ch); else if (isdigit(ch)) continue; ``` 優點:可移植至非 ASCII 字元集(如 EBCDIC),語意更清晰。)