2022年4月25日 星期一

a011: 00494 - Kindergarten Counting Game

 內容

算一算每行有幾個字(word)。

Word的定義是連續的字元(letter: A~Z a~z)所組成的字。

範例輸入 #1
Hello everybody!!
This is school principal speeking.
範例輸出 #1
2
5








解題想法:

本來用isspace()算一行中間有幾個空格,再將數字+1。

但第一次送出去是錯誤,才發現可能兩個字母間用符號連接而不用空格。所以改計算字母isalpha()與非字母!isalpha()間數量,再加一。 


#include <iostream>

#include <string>

using namespace std;


int main() {

    string sen;

    int i, num;

    

    while(getline(cin,sen)) {

        num = 0;

        for( i = 0; i < sen.length(); i++ )

        {

            if (!isalpha(sen[i]) && isalpha(sen[i+1]) && i!=0)

            {

                num++;

            }

        }

        num += 1;

        cout << num << endl; 

    }

}