问题描述
对输入的一句子实现查找且置换的功能(找到某个子串并换成另一子串)。
比如:将"abcf abdabc
"中的"abc
",替换为"AA
",则替换结果为"AAf abdAA
";而将"abcf abdabc
"中的"abc
"替换为"abcabc
",则替换结果为"abcabcf abdabcabc
"。
本题查找子串时注意,大小写完全一致,才能作为子串,比如:在"Abcf abd Abc
"中,如果找字符串"abc
"是不存在的。
输入
第一行为原来的字符串。
第二行为要查找的子串。
第三行为要替换成的子串。(请注意:三个字符串都可能含有空格)
附代码:
(运行结果没问题,但是oj里面判错,有路过的小伙伴望解答一下)
#include<bits/stdc++.h>
using namespace std;
string s,s1,s2,ss,sum;
int main()
{
getline(cin,s);
getline(cin,s1);
getline(cin,s2);
int a=s.size();
int b=s1.size();
int i=0;
while(i<a+b)
{
ss=s.substr(i,b);
if(ss==s1)
{
sum=sum+s2;
}
else
sum=sum+ss;
i=i+b;
ss.clear();
}
cout<<sum;
return 0;
}