程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> PAT 06-3 單詞長度,pat06-3單詞長度

PAT 06-3 單詞長度,pat06-3單詞長度

編輯:關於C語言

PAT 06-3 單詞長度,pat06-3單詞長度


此題為簡化版,題設為“以'.'結尾”、“單詞與語言無關”。三種情況下的輸入輸出為

           . -> 無輸出

   a     b. ->1 1(無空格)

   a   b  . ->1 1(無空格)

程序中為了讓最後不輸出空格,設置了一個bool型的flag,輸出了數字時將flag置為真,輸出下一個數時如果flag為真則先輸出一個空格,題設要求及代碼實現如下

/*
    Name: 
    Copyright: 
    Author: 
    Date: 31/03/15 21:16
    Description: 
你的程序要讀入一行文本,其中以空格分隔為若干個單詞,以‘.’結束。你要輸出每個單詞的長度。這裡的單詞與語言無關,可以包括各種符號,比如“it's”算一個單詞,長度為4。注意,行中可能出現連續的空格;最後的‘.’不計算在內。

輸入格式:

輸入在一行中給出一行文本,以‘.’結束。

提示:用scanf("%c",...);來讀入一個字符,直到讀到‘.’為止。

輸出格式:

在一行中輸出這行文本對應的單詞的長度,每個長度之間以空格隔開,行末沒有最後的空格。

輸入樣例:

It's great to see you here.
輸出樣例:

4 5 2 3 3 4
*/

#include <stdio.h>
#include <stdbool.h>

int main()
{
//    freopen("in.txt", "r", stdin); // for test 
    
    char ch;
    int cnt;
    bool flag;
    
    flag = false;
    cnt = 0;
    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);
    }
//    fclose(stdin); // for test
    
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved