版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}