C++信息学奥赛1141:删除单词后缀

17 阅读1分钟

image.png

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str1;
  // 输入一个字符串
  cin>>str1;
  if(str1.length()<=1){
    cout<<str1; // 如果字符串长度小于等于1,直接输出该字符串
    return 0;
  }
  if(str1.substr(str1.length() - 3)=="ing"){
    for(int i=0;i<str1.length()-3;i++){
      cout<<str1[i]; // 输出去除末尾"ing"的部分
    }
    return 0;
  }else if(str1.substr(str1.length() - 2)=="ly" or str1.substr(str1.length() - 2)=="er"){
    for(int i=0;i<str1.length()-2;i++){
      cout<<str1[i]; // 输出去除末尾"ly"或"er"的部分
    }
    return 0;
  }
  cout<<str1; // 其他情况下输出原字符串
}

该段代码实现了特定规则下对字符串进行处理的功能。首先,通过cin >> str1语句输入一个字符串。然后,根据不同的条件进行处理。如果字符串长度小于等于1,则直接输出该字符串并结束程序。如果字符串末尾是"ing",则去除末尾的"ing"部分并输出剩余部分。如果字符串末尾是"ly"或"er",则去除末尾的"ly"或"er"部分并输出剩余部分。如果不满足以上条件,则直接输出原字符串。最后,程序返回0,表示正常结束。