题目链接:
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=435
Kindergarten Counting Game
Everybody sit down in a circle. Ok. Listen to me carefully.
``Woooooo, you scwewy wabbit!''
Now, could someone tell me how many words I just said?
Input and Output
Input to your program will consist of a series of lines, each line containing multiple words (at least one). A ``word'' is defined as a consecutive sequence of letters (upper and/or lower case).
Your program should output a word count for each line of input. Each word count should be printed on a separate line.
Sample Input
Meep Meep! I tot I taw a putty tat. I did! I did! I did taw a putty tat. Shsssssssssh ... I am hunting wabbits. Heh Heh Heh Heh ...
Sample Output
2 7 10 9
代码:
- #include <iostream>
- #include <cstdio>
- #include <cctype>
- using namespace std;
- int main()
- {
- #ifdef LOCAL
- freopen("f:\\input.txt", "r", stdin);
- #endif LOCAL
- char buf[10000];
- while(fgets(buf, sizeof(buf), stdin))
- {
- int count = 0, flag = 1;
- for(int i = 0; buf[i] != 0 ; ++i)
- {
- if(flag && isalpha(buf[i]))
- {//当flag为1并且buf[i]是字母时,count+1
- count ++;
- flag = 0;//当碰到一次字母后把flag置为0
- }
- if(!isalpha(buf[i]))
- {
- flag = 1;//当碰到一次非字母后把falg置为1
- }
- }
- cout << count << endl;
- }
- return 0;
- }