算法笔记 — 单词替换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37345402/article/details/83748454

题目链接:http://www.codeup.cn/problem.php?cid=100000580&pid=3

题目描述

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

输入

多组数据。每组数据输入包括3行,

第1行是包含多个单词的字符串 s,

第2行是待替换的单词a,(长度<=100)

第3行是a将被替换的单词b。(长度<=100)

s, a, b 最前面和最后面都没有空格。

输出

每个测试数据输出只有 1 行,

将s中所有单词a替换成b之后的字符串。

样例输入

I love Tian Qin
I
You

样例输出

You love Tian Qin

注意是单词与单词的替换!!!

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
char a[111],b[111],c[111];
int main(){
    while(gets(a)){
        string s[111]={};//不能定义为全局变量
        int len=strlen(a);
        gets(b);
        gets(c);
        int cnt=1;
        for(int i=0;i<len;i++){
            if(a[i]!=' '){
                s[cnt]+=a[i];
            }else{
                cnt++;
            }
        } 
        for(int i=1;i<cnt;i++){
            if(s[i]==b){
                cout<<c<<' ';
            }else{
                cout<<s[i]<<' ';
            }
        }
        if(s[cnt]==b){
            cout<<c<<endl;
        }else{
            cout<<s[cnt]<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_37345402/article/details/83748454