题目

1156: 单数变复数
时间限制: 1 Sec 内存限制: 128 MB
提交: 5186 解决: 3275

输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:
(1) 以辅音字母y结尾,变y为i,再加es;
(2) 以s, x, ch, sh结尾,则加es;
(3) 以元音o结尾,则加es;
(4) 其他情况加上s。

输入
输入一个字符串,仅含小写字母,长度不超过20。

输出
输出其对应的复数形式。

样例输入 Copy
butterfly
样例输出 Copy
butterflies

代码

// 注意指针越界,先判断,再用指针指向目标区域
// 本题要注意查找的字母会重复出现(在单词前段出现)/*
输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:
(1) 以辅音字母y结尾,变y为i,再加es;```
(2) 以s, x, ch, sh结尾,则加es;```
(3) 以元音o结尾,则加es;```
(4) 其他情况加上s。
*/
#include <iostream>
#include <string>using namespace std;int main() {string word; cin >> word;if (word.find("o", word.size() - 1) == word.size() - 1) cout << word << "es" << endl;else if (word.find("y", word.size() - 1) == word.size() - 1) cout << word.substr(0, word.size() - 1) << "ies" << endl;else if (word.find("s", word.size() - 1) == word.size() - 1) {cout << word << "es" << endl;}else if (word.find("x", word.size() - 1) == word.size() - 1) {cout << word << "es" << endl;}// 这里要加上 word.size() > 1 的判断,满足这个条件,才能进行 word.find("sh") == word.size() - 2 的判断else if (word.size() > 1 && word.find("sh", word.size() - 2) == word.size() - 2) {cout << word << "es" << endl;}else if  (word.size() > 1 && word.find("ch", word.size() - 2) == word.size() - 2) {cout << word << "es" << endl;}else cout << word << "s" << endl;//cout << word.find("ch") << endl;return 0;
}

启示

// 注意指针越界,先判断,再用指针指向目标区域
// 本题要注意查找的字母会重复出现(在单词前段出现)

加油!!!

考虑不周和指针越界1156: 单数变复数相关推荐

  1. ZZULIOJ.1156: 单数变复数

    1156: 单数变复数 题目描述 输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下: (1) 以辅音字母y结尾,变y为i,再加es: (2) 以s, x, ch, sh结尾,则加es: ...

  2. ZZNUOJ_用C语言编写程序实现1169:单数变复数(指针专题)(附完整源码)

    题目描述 输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下:   (1) 以辅音字母y结尾,变y为i,再加es:   (2) 以s, x, ch, sh结尾,则加es:   (3) 以元 ...

  3. c语言 单词变复数_C语言,字符串,单数变复数

    输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下:(1)以辅音字母y结尾,变y为i,再加es:(2)以s,x,ch,sh结尾,则加es:(3)以元音o结尾,则加es:(4)其他情况... ...

  4. c语言字符串转复数,c语言 单词变复数_C语言,字符串,单数变复数

    输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下:(1)以辅音字母y结尾,变y为i,再加es:(2)以s,x,ch,sh结尾,则加es:(3)以元音o结尾,则加es:(4)其他情况... ...

  5. Problem M 单数变复数

    Problem Description 编写程序,按照下列规则将英文名词由单数变成复数. 规则如下: (1)以辅音字母加y结尾,则将y改成i,再加es (2)以s, x, ch, sh结尾,则加es ...

  6. linux怎么检查越界,C语言指针越界访问示例

    C语言对数组下标不做检查,指针常常越界访问:我们编程时要特别注意. 一.示范代码 #include #include int a[10]; int b[10]; void main() { memse ...

  7. c语言 单词变复数_DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数......

    导航:网站首页 > DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数... DEV-C++中编写了一段C程序,其中设置了用文件进行.. ...

  8. python3 英文字母单数转复数

    单数转复数的方法 import re def pluralize(noun):if re.search('[sxz]$', noun):return re.sub('$', 'es', noun)el ...

  9. whose引导的定语从句,先行词是复数形式,从句里谓语动词用单数还是复数?

    得看whose后面跟的名词,如果是复数,定语从句的谓语动词就用复数,如实单数就用单数. 比如说: we live in a house whose windows are broken. we liv ...

最新文章

  1. MySQL常用性能分析方法-profile,explain,索引
  2. c++ -O1,-O2,-O3资料整理
  3. 笔记本电脑可以安装python吗-笔记本怎样安装Python64位的?
  4. 红帽目录服务的数据导入导出
  5. git cherry-pick简介
  6. 【软考之路】关于上周参加的软考的几点感想
  7. 速学c++(2)-helloworld工程
  8. boost::gil模块实现打包像素格式的测试程序
  9. Eclipse 控制console
  10. eslint 保存自动格式化_代码规范之理解ESLint、Prettier、EditorConfig
  11. Arch Linux 服务器,Arch Linux不适合当作服务器操作系统的四大原因
  12. 【DIY】通达信DIY添加扫雷宝、地图和复盘(1)
  13. 用数字万用表测量电阻-2/4/6线制测量
  14. 唐太宗灵州受降【会盟】的意义
  15. 数据库视频总结之概念篇
  16. 公积金能付首付吗?你在公积金贷款买房前这些知道吗?
  17. html clear属性值,clear属性怎么用
  18. Ubuntu14.04停留在开机logo界面
  19. darknet 框架中.cfg文件的参数详解,以yolov3为例
  20. MNIST手写字体识别入门编译过程遇到的问题及解决

热门文章

  1. python 抠图白幕_巧用Python,视频抠图无需绿幕
  2. 计算机科学与技术指导情况记录表,计算机科学与技术学院工作记录模板.doc
  3. 孙素丹老师 银行数字化场景营销专家
  4. java $ 解析api_Java 版抖音解析接口
  5. java中double身高_五个人比身高 (java)
  6. docker 安装ubuntu镜像
  7. Linux下达梦数据库导入导出
  8. 2016年最佳的15款Android黑客工具
  9. 193页8万字智慧管廊大数据信息化技术解决方案
  10. 搜狗CEO强烈推荐,98%好评,这本深度学习宝典刷爆IT圈!