设有一篇英文短文,每个单词之间是用空格分开的,试编写一算法,按照空格数统计短文中单词的个数。
算法分析如下:要统计单词的个数先要解决如何判别一个单词,应该从输入行的开头一个字符一个字符地去辨别。假定把一个文本行放在数组s中,那么就相当于从s[0]开始逐个检查数组元素,经过若干个空格符之后找到的第一个字母就是一个单词的开头,此时利用一个统计计数器num进行累加1运算,在此之后若连续读到的是非空格字符,则这些字符属于刚统计到的那个单词,因此不应将计数器num累加1,下一次记数应该是在读到一个或几个空格后再遇到非空格字符开始。因此,统计一个单词时不仅要满足当前所检查的这个字符是非空格,而且要满足所检查的前一个字符是空格。
Dear Editor,
I'm writing to tell you about a discussion we've had about whether the students should take physical exercise.
短文写作
某英文报社正在举办题为“E-books or Paper Books?”的征文活动。 请就此题目写一篇英文短文应征。内容包括以下两个方面:你喜欢电子书还是纸质书?理由是什么?
下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。 word_num(str) for(i=0;str[i]!= 【 】;i++) if(【 】 =)word=0; 【 】; } return(num); }
下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。 word num (str) char str[]; {int i,num=0,word=0; for(i=0;str[i]!=【 】;i++) if(【 】==)word=0; else if(word==0) { word=1; 【 】; } return(num); }
下述函数用于统计—行字符中的单词个数,单词之间用空格分隔。 word_num(str) char str[]; {int,num=O,word=O; for(i=0;str[i]!=【 】;i++) if(【 】=")wprd=0 else if(word=O) { word=1: 【 】; } return(num); }