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