中级天翼
单词替换经验值:0
题目描述 Description
在Word办公软件当中,经常会用到单词替换这个功能,即先找到需要替换的单词,然后用新单词将其替换掉。现有一个字符串,字符串中有很多单词,每个单词之间用空格隔开,指定需要替换的单词,并给定新的单词将其替换掉,输出替换过后的字符串(如果原串中没有指定的单词,则输出原串)。
输入描述 Input Description
输入为2行:
第一行为原字符串(长度不超过1000)。
第二行为2个单词,第一个单词表示指定的需要替换的单词,第二个为给定的将其替换的新单词(每个单词长度不超过100),中间有空格隔开。
输出描述 Output Description
输出为一行,为替换后的新字符串。
样例输入 Sample Input
I like my students like love
样例输出 Sample Output
I love my students
求思路,实现过程中文
李牧晓在2021-12-16 22:27:58追加了内容
#include<bits/stdc++.h>
using namespace std;
int p;
int z;
string t;
int cnt;
int main()
{
string a,b,c;
getline(cin,a);
cin>>b;
cin>>c;
for(int i=0;i<a.size();i++){
if(a[i]==' '&&a[i+1]!=' '){
p=i;
for(int j=i+1;j<=a.size();j++){
if(a[j]==' '&&a[j-1]!=' '){
z=j;
for(int k=p;k<=z;k++){
t[++cnt]=a[k];
}
break;
}
}
}
if(a[i]==' '){
cout<<a[i];
}
else if(t==b){
cout<<c;
}
else{
cout<<t;
}
cnt=0;
}
return 0;
}
啥也不是的lj代码
李牧晓在2021-12-18 12:25:58追加了内容
请问如何提取单词?
新手守护
表扬这种帖子!
有明确的题目也有代码,非常好!
@李牧晓
我专门请来了汪子晨来帮你解决这个问题
下面你看到的字就是汪子晨打的
这道题输入不说,我有一个满分思路
(原串为s,另两个子串为a和b)
你需要定义一个string类型的f数组,用来储存单词
接着,定一个c,储存现在是第几个单词
首先遍历s,提取单词:
循环:: 0~s.size()-1
{
如果 :: s[i]为空格:: c++ //下一个单词
else ::
将单词加入字符::f[c]+=s[i]
}
循环:: 0~c
{
如果 :: f[i]为a :: 输出b//是特殊单词
else ::
输出f[i]//不是特殊单词
最后输出空格
}
亲爱的李牧晓同学,希望你能采纳!