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

PAT 06-3 單詞長度解析:C語言實現字符統計

     編輯:關於C語言

PAT 06-3 單詞長度問題詳解

這是一道經典的 PAT(程序設計能力測試)基礎題目,要求讀入一行以句點(.)結尾的文本,按空格分隔單詞,輸出每個單詞的長度。題目簡化了條件:單詞與語言無關,可包含各類符號(如 "it's" 視為長度 4 的單詞),連續空格需正確處理,且輸出末尾不得有多餘空格。

核心邏輯與代碼實現

程序採用字符流處理策略,逐字符讀取直到遇到句點。關鍵在於狀態管理:

  • 使用 cnt 累計當前單詞長度(非空格字符)
  • 遇到空格且 cnt > 0 時,輸出長度並重置計數器
  • 引入 flag 標記是否已輸出過長度,控制空格輸出邏輯
#include <stdio.h>
#include <stdbool.h>

int main() {
    char ch;
    int cnt = 0;
    bool flag = false;

    while ((ch = getchar()) && ch != '.') {
        if (ch != ' ') {
            cnt++;
        } else if (cnt != 0) {
            if (flag) printf(" ");
            printf("%d", cnt);
            flag = true;
            cnt = 0;
        }
    }
    if (cnt != 0) {
        if (flag) printf(" ");
        printf("%d\n", cnt);
    }
    return 0;
}

測試用例驗證

輸入輸出說明
.(無輸出)空輸入直接結束
a b.1 1連續空格正確處理
a b .1 1句點前空格不影響
It's great to see you here.4 5 2 3 3 4含撇號單詞正確計長

此題考察基本輸入處理、狀態機設計及邊界條件控制,是 C 語言初學者掌握字符流處理的優秀練習。

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