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 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.
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 ...
2 7 10 9
这个题目要统计每行中的单词数目。
注意对输入的处理。
使用了一个状态标志state:
state为1表示上一字符在单词内;
state为0表示上一字符不在单词内。
#include <stdio.h> int isl(char c) { if((c >= ‘a‘ && c <= ‘z‘) || (c >= ‘A‘ && c <= ‘Z‘)) { return 1; } else { return 0; } } int main(void) { char s[100000]; int rear = 0; int c; while((c = getchar()) != EOF) { s[rear++] = c; } s[rear] = ‘\0‘; int i = 0; int num = 0; int state = 0; while(s[i] != ‘\0‘) { if(s[i] == ‘\n‘) { printf("%d\n", num); num = 0; state = 0; } else { if(isl(s[i])) { if(state == 0) { num++; } state = 1; } else { state = 0; } } i++; } return 0; }
(全文完)
Kindergarten Counting Game - UVa494,布布扣,bubuko.com
Kindergarten Counting Game - UVa494
原文:http://blog.csdn.net/milkcu/article/details/23533833