输入一个字符串,以回车结束(字符串长度不超过 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
方法一:将一整局的每个单词单独存放在字符串数组,使得数组中每个单元存储的元素为一个词,方便与修改的词(string类型)对比。
#include <iostream>
using namespace std;
string s[10000],a,b;
int main(){
int num=0;
while(cin>>s[num]){
num++;
char x=getchar();//接收空格
if(x=='\n') break;//如果为回车,输入结束,退出循环
}
cin>>a>>b;
for(int i=0;i<num;i++){
if(s[i]==a)
cout<<b<<" ";
else
cout<<s[i]<<" ";
}
return 0;
}
方法二:将所有全部读入字符串数组,数组中倒数第二个(i-2)元素为待替换的单词a,最后一个元素为将被替换的单词b。
#include <iostream>
using namespace std;
string s[10000];
int main(){
int i=0;
while(cin>>s[i]) i++;
for(int k=0;k<i-2;k++){
if(s[k]==s[i-2])
cout<<s[i-1];
else
cout<<s[k];
cout<<" ";
}
return 0;
}