#include<iostream>
#include<vector>
/*
You want someone to help you
You
I
I want someone to help you
*/
using namespace std;
int main() {
string s, taget, replace;
int i = 0, j = 0;
getline(cin, s);
cin >> taget >> replace;
vector<string> svec;
while (j < s.size()) {
j = i;
while (j < s.size() && s[j] != ' ') {
j++;
}
string t = s.substr(i, j - i); //切分单词
svec.push_back(t); //所有单词存入vector数组
i = j + 1;
}
for (int i = 0; i < svec.size(); i++) {
if (svec[i] == taget) {
svec[i] = replace;
}
}
for (int i = 0; i < svec.size(); i++) {
cout << svec[i];
if (i != svec.size() - 1) {
cout << " ";
}
}
return 0;
}
思路:
双指针遍历字符串,以截取每个单词,将每个截取的单词push_ back到vector<string>类型的数组中。
所有单词均存入数组后
遍历数组,并比较数组中每个元素与待替换单词,匹配成功则直接将其替换。

京公网安备 11010502036488号