问个小问题(标题6个字

A. 单词的长度
Problem ID: 9416
Contest ID: 4180
必做题
【题目描述】

输入一行单词序列,相邻单词之间由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<bits/stdc++.h>
using namespace std;
int t;
string n;
int main(){
char a[1001];
    memset(a,'\0',1001);
    cin.getline(a,1001);
    int sum=0,i,k;
    for(i=0;i<strlen(a);i++){
        if(a[i]!=' '){
            sum++;
            }else{
            k=0;
            for(int j=i+1;j<strlen(a);j++){
                for(int j=i+1;j<strlen(a);j++){
                    if(a[j]==' '){
                        k++;
                        }else{
                        break;
                        }
                    }
                i+=k;
                cout<<sum<<",";
                sum=0;
                }
            }
        cout<<sum;
        return 0;
    }
}

求dalao看看

你代码太长了

1 个赞

思路:
由于cin遇到空格会中断一次,所以我们可以利用这个原理。

#include<bits/stdc++.h>
using namespace std;
int len[1001],i,n;
string s;
int main()
{
	while(cin>>s) len[++n]=s.size();
	for(i=1;i<n;++i) cout<<len[i]<<",";
	cout<<len[n];
	return 0;
}

你看多简便

求解决方案(重点)

2 个赞

此贴结

解决方案呢?

1 个赞