题目
思路
模拟题目。
需要了解以下几个函数, 以下说的字符串下标都是从 开始的。
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; }