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 }