题目描述
编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。 (凡是以一个或多个空格隔开的部分就为一个单词)
输入描述:
输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。
输出描述:
可能有多组测试数据,对于每组数据, 输出字符串中每个单词包含的字母的个数。
示例1
输入
hello how are you.
输出
5 3 3 3
/* 程序设计思想:使用动态数组vector来做,类似于C++的split函数,这是条件为空格*/ #include<iostream> #include<string> #include<vector> using namespace std; int main(){ string input; vector<int>arr; int s=0; //用来存分割的字符串的长度 while(getline(cin,input)){ //注意这里读取字符串的方式,为了读入空格用getline(cin,input) for(int i=0;i<input.size();++i){ if(input[i]==' '||input[i]=='.'){ arr.push_back(s); s=0; }else{ s++; } } for(int j=0;j<arr.size();++j){ cout<<arr[j]<<" "; } } return 0; }