7-113 單詞長度 (15分)
你的程序要讀入一行文本,其中以空格分隔為若干個單詞,以.
結束。你要輸出每個單詞的長度。這里的單詞與語言無關,可以包括各種符號,比如it's
算一個單詞,長度為4。注意,行中可能出現連續的空格;最后的.
不計算在內。
輸入格式:
輸入在一行中給出一行文本,以.
結束
提示:用scanf("%c",...);
來讀入一個字符,直到讀到.
為止。
輸出格式:
在一行中輸出這行文本對應的單詞的長度,每個長度之間以空格隔開,行末沒有最后的空格。
輸入樣例:
It's great to see you here.
輸出樣例:
4 5 2 3 3 4
代碼解析 重點放在判斷當前是在單詞內部還是在外部,我用了一個標志變量判斷, 當遇到空格時候將inword更改 並把統計的單詞數輸出出來 注意最后如果你輸入的單詞當中沒有空格或者你最后的單詞也沒有空格
你會少輸出最后一個 需要注意。還有格式最后一個不帶空格。
1 #include<stdio.h> 2 int main() 3 { 4 int inword=0,count=0,flag=0; 5 char page[200],c; 6 while((c=getchar())!='.') 7 { 8 9 if(inword&&c==' ') 10 { 11 if(flag) 12 printf(" %d",count); 13 else 14 { 15 flag=1; 16 printf("%d",count); 17 } 18 inword=0; 19 count=0; 20 } 21 else 22 { 23 if(!inword&&c!=' ') 24 inword=1,count++; 25 else 26 if(inword&&c!=' ') 27 count++; 28 } 29 } 30 if(count!=0) 31 { 32 if(flag) 33 printf(" %d",count); 34 else 35 { 36 flag=1; 37 printf("%d",count); 38 } 39 } 40 return 0; 41 }