问题标题: 酷町堂:1466 单词替换

0
0
已解决
李牧晓
李牧晓
中级天翼
中级天翼

单词替换经验值: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追加了内容

请问如何提取单词?


0
已采纳
熊智晖
熊智晖
新手守护
新手守护

表扬这种帖子! 

有明确的题目也有代码,非常好!

@李牧晓

我专门请来了汪子晨来帮你解决这个问题

下面你看到的字就是汪子晨打的

这道题输入不说,我有一个满分思路

(原串为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]//不是特殊单词    
    最后输出空格 

亲爱的李牧晓同学,希望你能采纳! 

0
DS#官方账号
DS#官方账号
修练者
修练者

提取单词我不是发了吗?

0
0
0
高舒豪
高舒豪
中级光能
中级光能

定义s,x,y,f[1005]

输入s,x,y

提取单词到f

如果f[i]等于x

输出y

否则

输出f[i]

我要回答