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

首字母變大寫:C 語言字串單詞首字母大寫轉換

     編輯:關於C

問題需求

輸入多行英文句子(長度 ≤ 100),將每個單字的第一個字母轉為大寫,其餘保持不變。單字以空格分隔。

核心邏輯

使用 flag 標記是否位於單字開頭:行首或空格後為單字開頭。遇到小寫字母時減 32(ASCII 碼差值)轉大寫。

完整程式碼

#include <stdio.h>
#include <string.h>

int main() {
    int i, length, flag;
    char string[100];

    while (gets(string) != NULL) {
        length = strlen(string);
        flag = 1; // 行首視為單字開頭

        for (i = 0; i < length; i++) {
            if (flag && string[i] >= 'a' && string[i] <= 'z')
                string[i] -= 32; // 轉大寫

            if (string[i] == ' ')
                flag = 1;
            else
                flag = 0;
        }
        puts(string);
    }
    return 0;
}

改進建議

  • 改用 fgets() 替代 gets()
  • 利用 ctype.h 的 toupper() 與 islower() 增加可讀性與可移植性
  • 處理連續空格、製表符等空白字元

測試樣本

Input:
i like acm
i want to get an accepted

Output:
I Like Acm
I Want To Get An Accepted
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved