#include <iostream> using namespace std; int main() { string s; while (getline(cin, s)) { string a, b; getline(cin, a); getline(cin, b); int found = s.find(a); //找第一次出现位置 while (found < s.size()) { if ((found == 0&& s[found + a.length()] == ' ') || (s[found - 1] == ' ' && s[found + a.length()] == ' ')) { //如果在开头第一个单词或者中间部分单词为所找,则替换,此处注意原字符串中单词的一部分与所找单词一样不能替换 s.erase(found, a.length()); //从找到的位置删除原单词 s.insert(found, b); //从找到的位置进行替换 } found = s.find(a, found + 1); //从下一个位置继续找 } cout << s << endl; } } // 64 位输出请用 printf("%lld")