【例题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\)

分析

字符串的 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;
}
posted @ 2021-07-14 22:56  Juro  阅读(54)  评论(0编辑  收藏  举报