歡迎訪問我的新博客: http://www.milkcu.com/blog/
原文地址: http://www.milkcu.com/blog/archives/uva494.html
題目描述
?
Kindergarten Counting Game
?
? 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
解題思路
這個題目要統計每行中的單詞數目。
注意對
輸入
的處理。
使用了一個狀態標志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; }
(全文完)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
