错误代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int q;
cin >> q;
string s, str;
cin >> s;
while (q--)
{
int x;
cin >> x;
if (x == 1)
{
cin >> str;
s = s + str;
cout << s << endl;
}
else if (x == 2)
{
int a, b;
cin >> a >> b;
cout << s.substr(a, b) << endl;
}
else if (x == 3)
{
int a;
cin >> a >> str;
cout << s.insert(a, str) << endl;
}
else if (x == 4)
{
cin >> str;
cout << s.find(str) << endl;
}
}
}
错误原因
每次处理时直接输出 string的函数,而不是将 string函数赋值给待处理字符串 导致字符串处理后没有被保存
正确代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int q,x;
int a, b;
cin >> q;
string s, str;
cin >> s;
while (q--)
{
cin >> x;
if (x == 1)
{
cin >> str;
s += str;
cout << s << endl;
}
else if (x == 2)
{
cin >> a >> b;
s = s.substr(a,b);
cout << s << endl;
}
else if (x == 3)
{
cin >> a >> str;
s = s.insert(a,str);
cout << s << endl;
}
else if (x == 4)
{
cin >> str;
cout << (int)s.find(str) << endl;
}
}
}