首页 > 代码库 > 华科机考:统计单词

华科机考:统计单词

   

时间限制:1秒       空间限制:32768K         

题目描述

编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。 (凡是以一个或多个空格隔开的部分就为一个单词)

输入描述: 输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。

 

输出描述: 可能有多组测试数据,对于每组数据, 输出字符串中每个单词包含的字母的个数。

输入例子: hello how are you.

 

输出例子: 5 3 3 3

 

要点:1.扫描该串,如果当前字符不是空格也不是.号就自加,在此基础上,如果下一个字符是空格或者是.号就输出该单词长度

           (具体实现的话,就用两个if嵌套就ok了)

         2.输出的末尾不能有空格

          (可以采用一个标志量来区分是否为带一个输出的单词长度)

代码:

#include <iostream>

using namespace std;

int main(){
  string str;
  int ans,flag;
    while(getline(cin,str)){
       ans=0;
       flag=0;
      for(int i=0;i<str.size()-1;i++){
         if(str[i]!= &&str[i]!=.){
            ans++;
             if(str[i+1]== ||str[i+1]==.){
                if(flag==0){
                 cout<<ans;
                 flag=1;
                }
                else
                 cout<<" "<<ans;
               ans=0;
             }
         }
      }
     cout<<endl;
    }
  return 0;
}

 

华科机考:统计单词