信奥赛一本通1142:单词的长度

简介: 【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。【输入】一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。【输出】依次输出对应单词的长度,之间以逗号间隔。

【题目描述】

输入一行单词序列,相邻单词之间由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

C++:
#include<iostream>
using namespace std;
int main()
{
    string s;            //string可以直接输入字符串
    getline(cin,s);      //getline可以输入含空格的字符串
    int count=0;         //计算每个单词的长度
    for(int i=0;i<s.length();i++)      //遍历每个字符
    {
        count++;                      //每次遍历直接先计数+1
        if(s[i]==' ')                 //如果该字符是空格的话
        {
            count--;                   //计数减1因为空格不包含进去
            if(count!=0)               //如果计数不为0的话就输出
                cout<<count<<",";
            count=0;                     //然后计数归0
        } 
    }  
    cout<<count<<endl;                   //因为最后一个单词后面没有空格所以在遍历结束后输出
}
C语言:
#include<stdio.h>
int main()
{
    char s[1001];
    gets(s);
    int count=0;
    for(int i=0;i<strlen(s);i++)
    {
        count++;
        if(s[i]==' ')
        {
            count--;
            if(count!=0)
                printf("%d,",count);
            count=0;
        } 
    }
    printf("%d",count);
}

注:现在的信奥赛一本通不支持C语言中的gets输入直接获取字符串,因为其安全性不高,C语言中使用fgets(s,n,stdin)来从输入缓冲区中读取字符,其中s为字符数组变量名,n为长度,stdin为输入缓冲区

相关文章
【Leetcode -551.学生出勤记录Ⅰ -557.反转字符串中的单词Ⅲ】
【Leetcode -551.学生出勤记录Ⅰ -557.反转字符串中的单词Ⅲ】
30 0
|
6月前
|
算法
力扣经典150题第十九题:最后一个单词的长度
力扣经典150题第十九题:最后一个单词的长度
36 0
|
存储 Cloud Native Go
【刷题日记】1455. 检查单词是否为句中其他单词的前缀
【刷题日记】1455. 检查单词是否为句中其他单词的前缀
114 1
|
Cloud Native
【刷题日记】30. 串联所有单词的子串
本次刷题日记的第 75篇,力扣题为:30. 串联所有单词的子串 ,困难
LeetCode150道面试经典题--最后一个单词的长度(简单)
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
45 0
|
C语言 C++
信奥赛一本通1149:最长单词2
【题目描述】 一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。 【输入】 一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。 【输出】 该句子中最长的单词。如果多于一个,则输出第一个。 【输入样例】 I am a student of Peking University. 【输出样例】 University
387 0
|
人工智能 C语言
信奥赛一本通(2034:【例5.1】反序输出)
【题目描述】 输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数。 【输入】 输入一行共有n个数,每个数之间用空格隔开。 【输出】
1005 0
|
机器学习/深度学习 C语言 C++
信奥赛一本通1150:求正整数2和n之间的完全数
题目描述】 求正整数2和n之间的完全数(一行一个数)。 完全数:因子之和等于它本身的自然数,如 6=1+2+3 【输入】 输入n(n≤5000)。 【输出】 一行一个数,按由小到大的顺序。 【输入样例】 7 【输出样例】
583 0
|
C语言
浙大版《C语言程序设计(第3版)》题目集 - 练习7-10 查找指定字符(15 分)
浙大版《C语言程序设计(第3版)》题目集 - 练习7-10 查找指定字符(15 分)
244 0
|
存储 算法 搜索推荐
万字长文|十大基本排序,一次搞定!
万字长文|十大基本排序,一次搞定!
114 0
万字长文|十大基本排序,一次搞定!

热门文章

最新文章