#include <bits/stdc++.h>
using namespace std;
string str;
int i;
int main( )
{
cin>>i;
getchar( );
getline(cin,str);
for (int j=0;j<i;j++)
{
int n;
cin>>n;
getchar( );
switch (n)
{
case 1:
{
string s;
getline(cin,s);
str.append(s);
cout<<str<<endl;;
break;
}
case 2:
{
int a,b;
cin>>a>>b;
str=str.substr(a,b);
cout<<str<<endl;
break;
}
case 3:
{
string s;
int k;
cin>>k;
getchar( );
getline(cin,s);
str=str.insert(k,s);
cout<<str<<endl;
break;
}
case 4:
{
string s;
getline(cin,s);
if (str.find(s)!=string::npos) cout<<str.find(s)<<endl;
else cout<<-1<<endl;
break;
}
}
}
return 0;
}
代码如上,有人能解释一下吗?