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

C語言大小寫轉換:利用 ASCII 碼差值 32 實現

     編輯:關於C

原理

ASCII 碼中,大寫字母 'A'~'Z' (65~90),小寫 'a'~'z' (97~122)。

差值恆為 32 (0x20),即第 5 位 (bit 5) 差異。

  • 大寫 → 小寫:c + 32 或 c | 0x20 (置位)。
  • 小寫 → 大寫:c - 32 或 c & ~0x20 (清位)。

標準庫函式 (推薦)

#include 
char lower = tolower('A'); // 'a'
char upper = toupper('z'); // 'Z'
// 自動處理非字母字元 (原樣返回),支援 locale

手寫版本 (教學用)

char to_lower(char c) {
    if (c >= 'A' && c <= 'Z') return c + 32;
    return c;
}
char to_upper(char c) {
    if (c >= 'a' && c <= 'z') return c - 32;
    return c;
}

程式碼範例

#include 
int main() {
    char c1, c2;
    printf("請輸入一個大寫字母: ");
    scanf(" %c", &c1); // 空格跳過空白
    c2 = c1 + 32;
    printf("小寫: %c (ASCII: %d)\n", c2, c2);
    return 0;
}
// 輸入 A -> 輸出 a (97)

注意

  • 僅適用 ASCII/相容編碼 (UTF-8 英文字母同碼位)。
  • 非字母字元 (數字、符號) 加減 32 會產生亂碼,務必加範圍檢查。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved