內容
算一算每行有幾個字(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;
}
}