基础信息学奥赛初学者指南字符串应用解析

【习题解析】

1、删除单词后缀

【题目描述】

给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。

【输入】

输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。

【输出】

输出按照题目要求处理后的单词。

【输入样例】

referer

【输出样例】

refer

【参考程序】

#include

#include

usingnamespacestd;

chars[35];intmain()

{intl;gets(s);l=strlen(s);if(strcmp(&s[l-3],"ing")==)s[l-3]='\0';elseif(strcmp(&s[l-2],"er")==||strcmp(&s[l-2],"ly")==)s[l-2]='\0';puts(s);return;

}

2、单词的长度

【题目描述】

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

#include

usingnamespacestd;

chara[1001];intmain(){intlen;boolfirst=1;while(cin>>a){len=strlen(a);if(first){first=;cout

}

3、最长最短单词

【题目描述】

输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。

试输出第1个最长的单词和第1个最短单词。

【输入】

一行句子。

【输出】

第1行,第一个最长的单词。

第2行,第一个最短的单词。

【输入样例】

I am studying Programming language C in Peking University

【输出样例】

ProgrammingI

【提示】

提示:

如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。

#include

#include

#include

usingnamespacestd;

chars[20201];

intmain()

{intmax=,min=101,maxi,mini,t=;gets(s);intlen=strlen(s);s[len]=' ';//在字符串后添加一个空格,方便判定最后一个单词for(inti=;i){if(t>max)//判断是否需要更新目前的最长单词{max=t;

//max存储最长的单词长度maxi=i-t;

//maxi存储最长胡单词在句子中的起始位置}if(t

//min存储最短的单词长度mini=i-t;

//mini存储最短的单词在句子中的起始位置}t=;

//单词长度清零}}for(inti=maxi;i

//输出最长单词cout

//输出最短单词return;

}

扫码加入中山2018小学升学群聊

- END -授人以鱼,不如授人以渔。作业名师帮,不仅教你做作业,更教你学会做作业!致力于为全国中小学生提供全学段的学习辅导服务。免费提供一线名校、名师的教学方法;提供名校名师的学习资料、课件、试卷等。“互联网+”让教育公平触手可及!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180511G1Z0H900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券