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

C語言字符串大寫轉換:標準庫 toupper 實現與完整示例

     編輯:關於C

核心方法

遍歷字符串每個字符,調用 toupper()(定義於 )轉換為大寫,原地修改字符數組。

完整代碼

#include \
#include \
#include \
#include \

int main(void) {\
    int length, i;\
    char string[20] = "this is a string";\
\
    length = strlen(string);\
    for (i = 0; i < length; ++i) {\
        string[i] = toupper(string[i]);\
    }\
\
    printf("%s\\n", string);\
    system("pause");  // Windows 下暫停控制台\
    return 0;\
}

關鍵點解析

  1. strlen 獲取字符串長度(不含結束符 \\0)。
  2. toupper(int c):參數為 int,實際接受 unsigned char 或 EOF;若參數為小寫字母返回對應大寫,否則原值返回。安全性:對非字母字符(空格、數字、標點)無副作用。
  3. 原地修改 string[i],無需額外緩衝區。
  4. system("pause") 僅 Windows 有效,跨平台建議用 getchar() 替代。

運行結果

THIS IS A STRING

擴展:完整的字符串大小寫轉換工具函數

#include \
#include \

void str_toupper(char *str) {\
    for (; *str; ++str) *str = toupper((unsigned char)*str);\
}\

void str_tolower(char *str) {\
    for (; *str; ++str) *str = tolower((unsigned char)*str);\
}\

void str_toggle_case(char *str) {\
    for (; *str; ++str) {\
        if (islower((unsigned char)*str)) *str = toupper(*str);\
        else if (isupper((unsigned char)*str)) *str = tolower(*str);\
    }\
}
  • 指針遍歷風格更簡潔高效。
  • 強制轉換 (unsigned char) 避免負值字符導致未定義行為。
  • 可直接集成到項目通用工具庫。

標準庫對照表

推薦使用標準 toupper/tolower 循環實現,跨平台可移植。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數頭文件功能
toupperctype.h單字符轉大寫
tolowerctype.h單字符轉小寫
struprstring.h (非標準)字符串轉大寫 (MSVC)
strlwrstring.h (非標準)字符串轉小寫 (MSVC)