使用find函数时会将所有匹配上的字符串全部替换掉,所以要在单词的前后加上空格
#include<iostream>
#include<string>
using namespace std;

int main() {
	string str;
	string oldstr, newstr;

	while (getline(cin, str)) 
	{
		str = ' ' + str;
		cin >> oldstr;
		oldstr = ' ' + oldstr + ' ';
		cin >> newstr;
		newstr = ' ' + newstr + ' ';
		while (str.find(oldstr) != string::npos )
		{
			int pos = str.find(oldstr);
			str.erase(pos, oldstr.size());
			str.insert(pos, newstr);

		}
		str.erase(0, 1);
		cout << str << endl;
	}

}