练习14,J题,字符串子操作
题目如下:
给定长度为n的只有小写字母的字符串s,进行m次操作,每次将[l,r]范围内所有c1字符改成c2,输出操作完的字符串
输入描述:
第一行两个数n,m
第二行一个字符串s
之后m行,每行两个数l r两个字符c1 c2
输出描述:
输出一行一个字符串
此题比较简单,
解答此问题,最好的方法是定义字符串,而不是字符数组,用字符数组此题可能会出现段错误,编译时输入字符串后无法输入的情况,用字符串大大解决该问题,但仍然要忽略掉空格(cin.ignore()),调用两层循环,以0为起点,如果找到了想要修改的范围直接调用if语句修改,代码如下:
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin >> n >> m;
int l,r;
char c1,c2;
cin.ignore();
string a;
getline(cin,a);
for(int i = 1;i <= m;i++)
{
cin >> l >> r >> c1 >> c2;
for(int j = l-1;j <= r-1;j++)
{
if(a[j] == c1)
{
a[j] = c2;
}
}
}
cout << a << endl;
return 0;
}

神州信息成长空间 29人发布