Java教程

【例题3】单词替换

本文主要是介绍【例题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;
}
这篇关于【例题3】单词替换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!