Oh,AC! 2024-08-11 16:53 采纳率: 91.7%
浏览 3
已结题

关于#c++#的问题


#include<iostream>
using namespace std;
signed main()
{
    string s,suf1="",suf2="";
    cin >> s;
    if(s.size()>2)
    {
        suf1=s.substr(s.size()-2,2);
    }
    if(s.size()>3)
    {
        suf2=s.substr(s.size()-3,3);
    }
    if(suf1=="er"||suf1=="ly")
    {
        s=s.substr(0,s.size()-2);
    }
    else if(suf2=="ing")
    {
        s=s.substr(0,s.size()-3);
    }
    cout<<s;
    return 0;
}

嘿 黑

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2024-08-11 16:54
    关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    你的问题和代码看起来没有错误,但是你可能想要对输入字符串做一些修改以使其更易于理解和处理。

    为了实现这个目标,你需要使用getline()函数从标准输入读取多行文本,并将这些行分割成字符串。然后,你可以根据需要创建一个新的字符串来存储结果。

    下面是改进后的代码:

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    string get_suf1(string str) {
        string result = "";
        for (int i = 0; i < str.size(); ++i) {
            if (str[i] == ' ') {
                result += " ";
            } else {
                result += str[i];
            }
        }
        return result.substr(result.find("er") + 2, result.find("ly") - result.find("er") + 2);
    }
    
    string get_suf2(string str) {
        string result = "";
        for (int i = 0; i < str.size(); ++i) {
            if (str[i] == ' ') {
                result += " ";
            } else {
                result += str[i];
            }
        }
        return result.substr(result.find("ing") + 3, result.find("ing") - result.find("ing") + 3);
    }
    
    int main() {
        string s;
        cout << "Enter a string: ";
        getline(cin, s);
    
        string suf1 = get_suf1(s);
        string suf2 = get_suf2(s);
    
        cout << suf1 << endl;
        cout << suf2 << endl;
    
        return 0;
    }
    

    这个代码首先定义了两个函数get_suf1()get_suf2(),它们接受一个字符串作为参数,并返回一个表示结果的新字符串。这两个函数都是使用substr()函数来获取字符串中的子串,但它们会根据输入字符串的不同调整返回的结果。例如,如果输入的字符串中包含连续的空格,那么结果将会是连续的空格;如果输入的字符串中只包含小写字母,则结果将会是小写字母。

    main()函数中,我们首先获取用户输入的字符串,然后调用get_suf1()get_suf2()函数分别提取suf1suf2子串,并将结果打印出来。最后,程序退出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月12日
  • 已采纳回答 8月12日
  • 创建了问题 8月11日