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

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

🌵🌵🌵前言

题目

输入一个字符串,以回车结束(字符串长度不超过 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;
}
目录
相关文章
如何去掉字符串开头,结尾或者中间的空格及其他不想要的字符
去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
|
5月前
字符串\单词本管理
字符串\单词本管理
23 1
正则表达式开头提取前三个数字
正则表达式开头提取前三个数字
|
6月前
|
索引 Python
字符串:比较、拼接、切割、转义字符;相关切割、替换、查找、去除空白、转大小写函数的方法
字符串:比较、拼接、切割、转义字符;相关切割、替换、查找、去除空白、转大小写函数的方法
41 0
|
Python
python字符串切分连接(输入一个包含多个单词的英文句子,单词间以空格分隔,标点符号后跟一个空格。定义一个函数,功能是用指定的符号把单词连接起来。)
python字符串切分连接(输入一个包含多个单词的英文句子,单词间以空格分隔,标点符号后跟一个空格。定义一个函数,功能是用指定的符号把单词连接起来。)
1065 0
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
164 0
|
存储 算法
算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词
算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词
在一个小写英文字母(a-z)组成的字符串的最短子串,其包含这个字符串中出现过的所有字母,输出最左边的该类子串
在一个小写英文字母(a-z)组成的字符串的最短子串,其包含这个字符串中出现过的所有字母,输出最左边的该类子串
108 0