下午好🌅🌅🌅
本答案参考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()
函数分别提取suf1
和suf2
子串,并将结果打印出来。最后,程序退出。