时间限制: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; }