【例题3】单词替换
作者:互联网
【例题3】单词替换
题面
题目描述
输入一个字符串,以回车结束。
该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。
现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入格式
第 \(1\) 行是包含多个单词的字符串 \(s\);
第 \(2\) 行是待替换的单词 \(a\);
第 \(3\) 行是单词 \(b\),表示用单词 \(b\) 替换单词 \(a\)。
\(s,a,b\) 最前面和最后面都没有空格。
输出格式
输出将 \(s\) 中所有单词 \(a\) 替换成 \(b\) 之后的字符串。
样例
样例输入
You want someone to help you
You
I
样例输出
I want someone to help you
数据范围与提示
对于 \(100\%\) 的数据,\(1\le length(s),length(a),length(b)\le 100\)。
分析
- (find()函数的解释请见移位包含的分析)
字符串的 replace() 函数,形如 s1.replace(pos1, len, s2)
将字符串 s1 中从 pos1 开始的 len 个字符替换为 s2
Code
#include <bits/stdc++.h>
#include <string>
using namespace std;
string s, a, b;
int main(void) {
getline(cin, s);
cin >> a >> b;
while (s.find(a) != s.npos) {
s.replace(s.find(a), a.size(), b);
}
cout << s;
return 0;
}
标签:行是,替换,单词,replace,字符串,例题,find 来源: https://www.cnblogs.com/Juro/p/15013400.html