【问题描述】
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
【输入格式】:
第1行是包含多个单词的字符串 s;
第2行是待替换的单词a(长度 <= 100);
第3行是a将被替换的单词b(长度 <= 100)。
s,a,b最前面和最后面都没有空格。
【输出格式】:
输出只有 1 行,将s中所有单词a替换成b之后的字符串。
【输入样例】:
You want someone to help you
You
I
【输出样例】:
I want someone to help you
【参考程序】
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
string a, b, s[101];
void work(int i) {
if (a == s[i]) {
cout << b << " "; // 如果该单词与待替换单词相同则替换
} else {
cout << s[i] << " "; // 否则直接输出该单词
}
}
int main() {
int len = 0; // 单词个数
char c;
do { // 循环输入
cin >> s[++len];
c = getchar(); // 接收单词后面的空格
} while (c == ' ');
cin >> a >> b; // 输入要替换的 和 替换成的
for (int i=1; i<=len; i++) { // 逐个判断是否要替换
work(i);
}
return 0;
}