首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言實現英文句子首字母大寫

     編輯:程式設計疑難解答

題目要求

輸入多行英文句子,將每個單詞首字母轉為大寫輸出。

代碼實現

#include <stdio.h>
#include <ctype.h>

int main() {
    char line[101];
    while (fgets(line, sizeof(line), stdin)) {
        int len = strlen(line);
        if (len > 0 && line[len-1] == '\n') line[len-1] = '\0'; // 去換行

        int newWord = 1; // 句首視為新單詞
        for (int i = 0; line[i]; i++) {
            if (newWord && islower(line[i])) {
                line[i] = toupper(line[i]);
            }
            newWord = (line[i] == ' ');
        }
        printf("%s\n", line);
    }
    return 0;
}

關鍵點

  • 使用 fgets 逐行讀取,保留空格。
  • 標誌變量 newWord 標記是否處於單詞開頭(句首或空格後)。
  • 利用 ctype.h 中 islower、toupper 處理大小寫轉換,比手動減 32 更安全可移植。
  • 處理多行輸入直到 EOF。

樣例驗證

輸入:
i like acm
i want to get an accepted

輸出:
I Like Acm
I Want To Get An Accepted

代碼簡潔健壯,符合題目所有要求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved