字符串操作
#include <iostream>
#include <string>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
string s;
cin >> s;
for (int i = 0; i < m; ++i) {
int l, r;
char c1, c2;
cin >> l >> r;
cin >> c1 >> c2;
for (int j = l - 1; j < r; ++j) {
if (s[j] == c1) {
s[j] = c2;
}
}
}
cout << s <<endl;
return 0;
}外层的 for 循环 ,它控制着整个替换操作执行的次数,一共会循环 m 次,每一次循环代表一次对字符串中部分字符的替换操作,这里的 m 就是前面从输入获取到的那个控制替换次数的整数。在每次外层循环中:首先定义了两个整型变量 l 和 r,以及两个字符型变量 c1 和 c2。通过 cin >> l >> r; 从标准输入读取两个整数,这两个整数通常可以理解为是要操作的字符串区间的左右边界。接着通过 cin >> c1 >> c2; 读取两个字符, c1 代表要在指定区间内查找并替换的目标字符, c2 代表用来替换 c1 的字符。内层的 for 循环 for (int j = l - 1; j < r; ++j):用于遍历从 l - 1 到 r - 1 这个区间内的字符串字符(索引范围是左闭右开区间),在循环内部通过 if (s[j] == c1) 条件判断,如果当前字符串中的字符等于要查找替换的目标字符 c1,就执行 s[j] = c2; 将其替换为 c2。最后输出