题目描述:
输入一个字符串,以回车结束(字符串长度≤2000≤2000)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入:
第1行是包含多个单词的字符串ss;
第2行是待替换的单词aa(长度 ≤ 1000≤1000);
第3行是a将被替换的单词bb(长度 ≤ 1000≤1000)。
s,a,bs,a,b最前面和最后面都没有空格。
输出:
输出只有 1 行,将s中所有单词aa替换成bb之后的字符串。
样例
输入数据 1
You want someone to help you
You
I
输出数据 1
I want someone to help you
好的,这里是宇小宙,今天我们来讲一下keda的第299题
Day1-Day8学了的应该会这道题,这里我们不啰嗦,直接上代码!咳咳,我说的是思路:
定义数组(string类型)×3,int类型(初始化为零):
#include<bits/stdc++.h>
using namespace std;
string s[1001];
string a;
string b;
int main(){
int i = 0;
return 0;
}
俗话说,while是个好用的工具,对吧?用来输入也可以(除了按下enter回车,其他不会间断):
while(cin >> s[i]){
i++;
}
i-1和i-2就是输入数据第二和第三行的单词:
a = s[i-1];
b = s[i-2];
for遍历字符串:
for(int c = 0; c <= i; c++){
if(s[c]==a){
s[c]=b;
break;
}
}
for(int c = 0;c <= i; c++){
cout << s[c] << " ";
}
code:
#include<bits/stdc++.h>
using namespace std;
string s[1001];
string a;
string b;
int main(){
int i = 0;
while(cin >> s[i]){
i++;
}
a=s[i-1];
b=s[i-2];
for(int c = 0; c <= i; c++){
if(s[c]==a){
s[c]=b;
break;
}
}
for(int c = 0;c <= i-3; c++){
cout << s[c] << " ";
}
return 0;
}