单词的长度
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 359 通过数: 222
【题目描述】
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。
注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。
【输入】
一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。
【输出】
依次输出对应单词的长度,之间以逗号间隔。
【输入样例】
She was born in 1990-01-02 and from Beijing city.
【输出样例】
3,3,4,2,10,3,4,7,5
【来源】
【代码】
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
char a[1000];//定义一个字符数组,用来存放单词序列
int la,i,j=0,count=0,l[300]={NULL};//定义一个整形数组,用来存放单词的长度
gets(a);
la=strlen(a);
for(i=0;i<=la;i++)
{
if(a[i]==' '&&a[i-1]!=' '||a[i]==NULL)//判断是不是每个单词后面的空格或者是不是单词序列的结尾
{
l[j]=count;//如果是单词的结尾,把单词的长度count输入到L数组中
count=0;
j++;
}
else if(a[i]==' '&&a[i-1]==' ')//判断是不是有连续的空格
continue;
else
count++;
}
cout<<l[0];
for(i=1;i<j;i++)//按照格式输出单词长度
cout<<","<<l[i];
cout<<endl;
return 0;
}