题目
思路
模拟题目。
需要了解以下几个函数, 以下说的字符串下标都是从 开始的。
str.find(c1, c2)
,表示在 这个串中从
这个位置开始找
这个字符串,找到了返回第一个字符的位置,找不到返回
。
str.substr(c1, c2)
,返回 这个串中从下标为
的地方开始的
字符组成的字符串。
我们在 串中一开始从
的位置去找
记它的位置为
显然
和我们开始找
的那个位置之间的字符串要输出,然后在输出
,这样就相当于我们把
替换成了
然后从下一个位置(
)开始找
,这样找下去,最后输出最后一个
出现的位置的结尾到字符串结尾之间的字符串。
Code
#include #include #include #include #include int x, last, len, l; std::string sss, s, t; int main() { std::cin >> sss >> s >> t; len = s.length(), l = sss.length(); while(sss.find(s, x) != -1) { last = x, x = sss.find(s, x); std::cout << sss.substr(last, x - last); std::cout << t; x += len; } std::cout << sss.substr(x, l - x); return 0; }