7-26 单词长度 (15分)
(一) 题目要求
你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。
输入格式:
输入在一行中给出一行文本,以.结束
提示:用scanf("%c",…);来读入一个字符,直到读到.为止。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例
:
It’s great to see you here.
输出样例
:
4 5 2 3 3 4
(二)代码如下
#include <>
int main(void){
char mid; //用于存储需要判断的字符
//count用于单词长度的计数, jud主要作用是判断该单词是否为第一个单词,主要是应对格式要求,输出的第一个单词长度前不能有空格
int count=0, jud=0;
do{ // 采用do while 形式优点是可以将最后一个单词与'.'相连时也可以做出输出。但是此处换为for循环更为精简
scanf("%c", &mid);
if(mid!=' ' && mid!='.')
count++; // 计数器
else{
if(count!=0 && jud==0){ // 首个单词的输出情况
printf("%d", count);
jud = 1; // 输出首个但此后判断条件更改
}
else if(count!=0) // 一般状态下的输出情况
printf(" %d", count);
count = 0;
}
}while(mid != '.');
return 0;
}
诚挚希望有心者指正,渴望简单的方法。