首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言大小寫字母轉換:標準輸入逐字元處理

     編輯:關於C語言

程式功能

從標準輸入讀取字元,直到 EOF(Windows Ctrl+Z,Linux/macOS Ctrl+D):

  • 小寫轉大寫(ch - 32)。
  • 大寫轉小寫(ch + 32)。
  • 數字字元 0-9 直接跳過(continue)。
  • 其他字元原樣輸出。

完整程式碼

#include 

int 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;
}

關鍵點解析

  1. getchar()/putchar():標準單字元 I/O,適合串流處理。
  2. EOF 檢測:int ch 必須宣告為 int 以容納 EOF(通常為 -1)。
  3. ASCII 碼差值:大小寫字母相差 32('a' - 'A' == 32)。
  4. continue 效果:遇數字直接進入下一次迴圈,putchar 不被執行,達到「過濾數字」目的。

更佳實踐:使用 ctype.h

#include 
/* ... */
if (islower(ch)) ch = toupper(ch);
else if (isupper(ch)) ch = tolower(ch);
else if (isdigit(ch)) continue;
```
優點:可移植至非 ASCII 字元集(如 EBCDIC),語意更清晰。)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved