输入一行字符串将其中的单词替换成另一单词

🌵🌵🌵前言

✨你好啊,我是“ 怪& ”,是一名在校大学生哦。
🌍主页链接:怪&的个人博客主页
☀️博文主更方向为:课程学习知识、作业题解、期末备考。随着专业的深入会越来越广哦…一起期待。
❤️一个“不想让我曾没有做好的也成为你的遗憾”的博主。
💪很高兴与你相遇,一起加油!

题目

输入一个字符串,以回车结束(字符串长度不超过 100)。
该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。
现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

  • 输入格式
    输入共 3 行。
    第 1 行是包含多个单词的字符串 s;
    第 2 行是待替换的单词 a(长度不超过 100);
    第 3 行是 a 将被替换的单词 b(长度不超过 100)。
  • 输出格式
    共一行,输出将 s 中所有单词 a 替换成 b 之后的字符串。
  • 输入样例:
    You want someone to help you
    You
    I
  • 输出样例:
    I want someone to help you

方法1:用ssin串流

//可以getline(cin,str) 直接读入一行

#include <iostream>
#include <sstream>
using namespace std;
string x[100000];

int main(){
    string str,a,b;

    getline(cin,str);
    cin>>a>>b;

    stringstream ssin(str);
    //stringstream的作用就是从string对象读取字符或字符串。

    string s;
    while(ssin>> s){ //s即为从str读出的字符/字符串
        if(s==a) cout<<b<<" ";
        else cout<<s<<" ";
    }
    return 0;
}

方法2:正常输入穷尽遍历比较

//可以getline(cin,str) 直接读入一行

#include <iostream>
#include <sstream>
using namespace std;
string x[100000];

int main(){
    string str,a,b;

    // getline(cin,str);
    // cin>>a>>b;

    int num=0;
    while(cin>>str){//读入所有的字符串
        x[num]=str;
        num++;
    }

    a=x[num-2],b=x[num-1]; //取出a,b
    // cout<<a<<" "<<b<<endl;

    for(int i=0;i<num-2;i++){//比较替换
        if(x[i]==a) {
            x[i]=b;
        }

    }

    for(int i=0;i<num-2;i++){//输出
        cout<<x[i]<<" ";
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪&

感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值