当前位置:   article > 正文

C/C++编程学习 - 第9周 ⑥ 删除单词后缀_c++删除单词后缀

c++删除单词后缀

题目链接

题目描述

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

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

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

Sample Input

referer
  • 1

Sample Output

refer
  • 1

思路

判断最后两三个字母是不是"er", “ly”, “ing”。如果是,就少输出一个后缀,否则全部输出。

C++代码1:

#include<iostream>
using namespace std;
string s;
int r;
int main()
{
	cin >> s;
	r = s.size() - 1;//r指向我们应该输出字符串的最后一个字符的下标
	if(s[r - 1] == 'e' && s[r] == 'r') r -= 2;//如果最后两个字母是er,就不输出这两个字母,同时让r往前移动2位
	else if(s[r - 1] == 'l' && s[r] == 'y') r -= 2;//如果最后两个字母是ly,就不输出这两个字母,同时让r往前移动2位
	else if(s[r - 2] == 'i' && s[r - 1] == 'n' && s[r] == 'g') r -= 3;//如果最后三个字母是ing,就不输出这三个字母,同时让r往前移动3位
	for(int i = 0; i <= r; ++i)
		cout << s[i];//输出到从0到r的所有字符
	cout << '\n';
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

C++代码2:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	while(cin >> str)
	{
		int len = str.length();
		if(str[len - 2] == 'e' && str[len - 1] == 'r')
		{
			for(int i = 0; i < len - 2; i++)
				cout << str[i];
			cout << endl;
		}
		else if(str[len - 2] == 'l' && str[len - 1] == 'y')
		{
			for(int i = 0; i < len - 2; i++)
				cout << str[i];
			cout << endl;
		}
		else if(str[len - 3] == 'i' && str[len - 2] == 'n' && str[len - 1] == 'g')
		{
			for(int i = 0; i < len - 3; i++)
				cout << str[i];
			cout << endl;
		}
		else cout << str << endl;
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/442621
推荐阅读
相关标签
  

闽ICP备14008679号