#include <iostream> using namespace std; string strs[101];//把所有单词存放到数组中 int main() { string str; getline(cin, str); string a, b; cin >> a; cin >> b; int k = 0; for(int i = 0; i < str.length(); i ++){ if(str[i] == ' '){ k ++; continue; } strs[k] += str[i]; } for(int i = 0; i <= k; i ++){ if(strs[i] == a) cout << b << ' '; else cout << strs[i] << ' '; } return 0; } /** 方法2:参考https://blog.nowcoder.net/n/68abed16a24c4136a8d9569e91f7d727?f=comment */ // int main(){ // string s, a, b; // getline(cin, s); // cin >> a; // cin >> b; // // 前后加一个空格,目的是便于查找单词 // // 比如说 s = "mnp def",a = "mn",直接使用s.find(a)的话是可以匹配成功的,但是此时 a 并不是 s 中的一个单词,就有问题了,但是如果前后都加空格的话就可以避免出现这个问题 // s = " " + s + " "; // a = " " + a + " "; // b = " " + b + " "; // while(1){ // int pos = s.find(a); // if(pos == -1) break; // s.erase(pos, a.length()); // s.insert(pos, b); // } // s = s.substr(1, s.length() - 2); //去除收尾空格 // cout << s; // return 0; // }