不使用string的思路处理,而是把string中按空格收集每一个单词,所有单词匹配的都替换
// #include <iostream>
// #include <cstdio>
// #include <sstream>
// #include <string>
// using namespace std;
// int main() {
// string line;
// while (getline(cin, line)) {
// string original, replace;
// cin >> original >> replace;
// stringstream stringStream(line);
// string str;
// while (stringStream >> str) {
// if (str == original) {
// cout << replace << " ";
// }
// else {
// cout << str << " ";
// }
// }
// cout << endl;
// }
// return 0;
// }
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> vec;
string str;
getline(cin, str);
string before, after;
cin >> before >> after;
int start = 0;
for (int i = 0; i < str.size(); i++) {
if (str[i] == ' ') {
vec.push_back(str.substr(start, i - start));
start = i + 1; // 更新为下一个单词的开头
}
}
// 将最后一个单词加入数组
vec.push_back(str.substr(start));
for (int i = 0; i < vec.size(); i++) {
if (vec[i] == before) {
vec[i] = after;
}
}
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << " ";
}
cout << endl;
return 0;
}

京公网安备 11010502036488号