这个题目是stl的使用和字符串拼接。
java里头substring是从首部到尾部的位置,但是C++里面substr是首部位置,和要截取的长度。
我算这种经常出错,每次都搞得很晕。
#include <bits/stdc++.h>
using namespace std;
string cs;
int main() {
cin >> cs;
int cnt;
cin >> cnt;
while (cnt--) {
int c1, c2;
string s1, s2;
cin >> c1 >> c2 >> s1 >> s2;
string subs = cs.substr(c1 - 1, c2 - c1 + 1);//剪切的一段
cs = cs.substr(0, c1 - 1) + cs.substr(c2);//剪切之后剩下的字符串拼在一起
string find = s1 + s2;//待插入的两端
if (cs.find(find) != string::npos) {//找到第一个匹配位置
int pos = cs.find(find);
cs = cs.substr(0,pos+s1.size()) + subs + cs.substr(pos + s1.size());
}
else {//找不到拼接到最后
cs = cs + subs;
}
}
cout << cs << endl;
return 0;
}
这篇博客写法也可以:https://blog.csdn.net/m0_62531913/article/details/136774843
标签:string,s1,094,substr,L1,cs,c1,find,粘贴 From: https://www.cnblogs.com/chengyiyuki/p/18109789