删除单词后缀
题目描述
给定一个单词,如果该单词以 er
、 ly
或者 ing
后缀结尾,则删除该后缀(题目保证删除后缀后的单词长度不为
0
0
0),否则不进行任何操作。
输入格式
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为 32 32 32)。
输出格式
输出按照题目要求处理后的单词。
样例 #1
样例输入 #1
referer
样例输出 #1
refer
题目描述:
- 题目要求我们检查给定的单词是否以指定的后缀结尾,如果是,则删除该后缀。
- 需要删除的后缀包括:
er
、ly
和ing
。 - 题目保证删除后缀后的单词长度不为零。
解题思路:
- 读取输入的单词。
- 检查单词的后缀是否为
er
、ly
或ing
。 - 如果单词以指定的后缀结尾,则删除该后缀。
- 输出处理后的单词。
C++代码实现:
#include <iostream>
#include <string>
using namespace std;
// 删除单词后缀的函数
string removeSuffix(string word) {
int length = word.length();
if (length >= 2 && word.substr(length - 2) == "er") {
return word.substr(0, length - 2); // 删除 "er" 后缀
} else if (length >= 2 && word.substr(length - 2) == "ly") {
return word.substr(0, length - 2); // 删除 "ly" 后缀
} else if (length >= 3 && word.substr(length - 3) == "ing") {
return word.substr(0, length - 3); // 删除 "ing" 后缀
}
return word; // 不进行任何操作
}
int main() {
string word;
cin >> word; // 读取输入的单词
string processedWord = removeSuffix(word); // 删除单词后缀
cout << processedWord << endl; // 输出处理后的单词
return 0;
}
代码解释:
- 我们定义了一个函数
removeSuffix
,用于删除单词的指定后缀。函数接受一个字符串word
作为参数,表示原始的单词。 - 在函数内部,我们首先获取单词的长度
length
。 - 然后,我们使用条件语句检查单词的后缀:
- 如果单词的长度大于等于 2,并且单词的最后两个字符是
"er"
,我们使用substr
函数截取单词的前length - 2
个字符,即删除"er"
后缀。 - 如果单词的长度大于等于 2,并且单词的最后两个字符是
"ly"
,我们使用substr
函数截取单词的前length - 2
个字符,即删除"ly"
后缀。 - 如果单词的长度大于等于 3,并且单词的最后三个字符是
"ing"
,我们使用substr
函数截取单词的前length - 3
个字符,即删除"ing"
后缀。
- 如果单词的长度大于等于 2,并且单词的最后两个字符是
- 如果单词不以任何指定的后缀结尾,我们直接返回原始的单词,不进行任何操作。
- 在
main
函数中,我们读取输入的单词word
。 - 然后,我们调用
removeSuffix
函数,将输入的单词作为参数传入,获取删除后缀后的单词,并将结果存储在变量processedWord
中。 - 最后,我们输出处理后的单词
processedWord
。
这个题目主要考察字符串的操作和后缀的判断。我们可以使用 substr
函数来获取单词的特定部分,并根据条件判断单词的后缀是否匹配指定的后缀。如果匹配,则删除后缀;否则,不进行任何操作。