考虑不周和指针越界1156: 单数变复数
题目
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: 单数变复数相关推荐
- ZZULIOJ.1156: 单数变复数
1156: 单数变复数 题目描述 输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下: (1) 以辅音字母y结尾,变y为i,再加es: (2) 以s, x, ch, sh结尾,则加es: ...
- ZZNUOJ_用C语言编写程序实现1169:单数变复数(指针专题)(附完整源码)
题目描述 输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下: (1) 以辅音字母y结尾,变y为i,再加es: (2) 以s, x, ch, sh结尾,则加es: (3) 以元 ...
- c语言 单词变复数_C语言,字符串,单数变复数
输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下:(1)以辅音字母y结尾,变y为i,再加es:(2)以s,x,ch,sh结尾,则加es:(3)以元音o结尾,则加es:(4)其他情况... ...
- c语言字符串转复数,c语言 单词变复数_C语言,字符串,单数变复数
输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下:(1)以辅音字母y结尾,变y为i,再加es:(2)以s,x,ch,sh结尾,则加es:(3)以元音o结尾,则加es:(4)其他情况... ...
- Problem M 单数变复数
Problem Description 编写程序,按照下列规则将英文名词由单数变成复数. 规则如下: (1)以辅音字母加y结尾,则将y改成i,再加es (2)以s, x, ch, sh结尾,则加es ...
- linux怎么检查越界,C语言指针越界访问示例
C语言对数组下标不做检查,指针常常越界访问:我们编程时要特别注意. 一.示范代码 #include #include int a[10]; int b[10]; void main() { memse ...
- c语言 单词变复数_DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数......
导航:网站首页 > DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数... DEV-C++中编写了一段C程序,其中设置了用文件进行.. ...
- python3 英文字母单数转复数
单数转复数的方法 import re def pluralize(noun):if re.search('[sxz]$', noun):return re.sub('$', 'es', noun)el ...
- whose引导的定语从句,先行词是复数形式,从句里谓语动词用单数还是复数?
得看whose后面跟的名词,如果是复数,定语从句的谓语动词就用复数,如实单数就用单数. 比如说: we live in a house whose windows are broken. we liv ...
最新文章
- MySQL常用性能分析方法-profile,explain,索引
- c++ -O1,-O2,-O3资料整理
- 笔记本电脑可以安装python吗-笔记本怎样安装Python64位的?
- 红帽目录服务的数据导入导出
- git cherry-pick简介
- 【软考之路】关于上周参加的软考的几点感想
- 速学c++(2)-helloworld工程
- boost::gil模块实现打包像素格式的测试程序
- Eclipse 控制console
- eslint 保存自动格式化_代码规范之理解ESLint、Prettier、EditorConfig
- Arch Linux 服务器,Arch Linux不适合当作服务器操作系统的四大原因
- 【DIY】通达信DIY添加扫雷宝、地图和复盘(1)
- 用数字万用表测量电阻-2/4/6线制测量
- 唐太宗灵州受降【会盟】的意义
- 数据库视频总结之概念篇
- 公积金能付首付吗?你在公积金贷款买房前这些知道吗?
- html clear属性值,clear属性怎么用
- Ubuntu14.04停留在开机logo界面
- darknet 框架中.cfg文件的参数详解,以yolov3为例
- MNIST手写字体识别入门编译过程遇到的问题及解决