首页 > 其他 > 详细

题目-统计一行文本的单词个数

时间:2021-05-10 22:59:29      阅读:26      评论:0      收藏:0      [点我收藏+]

题目-统计一行文本的单词个数

编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式

输入给出一行字符。

输出格式

在一行中输出单词个数。

输入样例

Let‘s go to room 209.

输出样例

5

具体分析和代码

方法一:字符数组

cin.get()函数:把从键盘上输入的每一个字符,包括空格符和回车符等分隔符都作为一个输入字符赋给字符型变量。

采用字符数组 s[ ] 接收全部的输入字符,再对该字符数组进行统计。

从第一个输入字符开始扫描,当扫描到第一个非空字符时,可认为输入行中至少有一个单词,赋值 count = 1;

从第一个非空字符开始统计,若空格后紧接着非空字符时,代表后面还有单词,count+1

技术分享图片
 1 //输入完毕后再统计  
 2 #include<iostream>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     char s[1000];    //接收字符的数组  
 8     int i=0, count(0); //i为输入的字符总数(包含空格),count用于计数 
 9     cin.get(s[i]);
10     while(s[i]!=\n){
11         i++;
12         cin.get(s[i]);
13     }
14     //cout << i << endl; 检验 
15     int t = 0; //t用于记录第一个非空字符的位置下标  
16     for(int j=0; j<=i; j++)
17     {
18         //cout<<s[j];
19         if(s[j]>=a&&s[j]<=z || s[j]>=A&&s[j]<=Z || s[j]>=0&&s[j]<=9){
20             count = 1;
21             t = j;
22             break;
23         }
24     }
25     //cout << t << endl;检验 
26     for(int j=t; j<i; j++)
27     { //当空格后接非空字符时,单词数+1  
28         if(s[j]==  && s[j+1]!= ){
29             count++;
30         }
31     }
32     cout << count << endl;     
33     
34     return 0;
35 }
(一)字符数组

 

方法二:一边输入字符一边统计单词

一个单词开始 = 输入非空字符;一个单词结束 = 输入空格或者换行符

从输入第一个字符开始,分情况讨论下一步:

  (1)是换行符,输入结束,退出循环;

  (2)是空格,继续,直到输入非空字符;

  (3)是非空字符,即为单词开始,统计值 count++,进入单词输入子循环,继续输入字符,直到输入空格或换行符时,即输完一个单词;

技术分享图片
 1 //边输入边统计,输入完即得出统计结果  
 2 #include <iostream>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     char a;
 8     int count=0;
 9  
10       while(1){
11           cin.get(a);
12         if(a==\n){ //输入回车代表结束循环,得出结果  
13             break;
14         }
15         else if(a!= )
16         { //  不为空格且满足下面条件的就为一个单词开始  
17             if(a>=a&&a<=z||a>=A&&a<=Z||a>=0&&a<=9)    {
18                 count++;   
19             }
20             while(1){
21                 cin.get(a);
22                 if(a== ||a==\n){ //读到空格或者回车代表这个单词输入完毕  
23                     break;
24                 }
25             }
26             if(a==\n){
27                 break;//换行符是一行输入结束的标志  
28             }
29         } 
30     }
31  
32       cout << count;
33     return 0;
34 }
(二)边输入边统计

 

题目-统计一行文本的单词个数

原文:https://www.cnblogs.com/yuanchuying/p/14752809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!