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

1
0
已解决
万韧山
万韧山
初级天翼
初级天翼

题目链接: 酷町堂:1466

先奉上本蒟蒻的RE10分代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    //freopen("题目英文名.in","r",stdin);
    //freopen("题目英文名.out","w",stdout);
/*
取个位 %10
取十位 /10%10
取百位 /100%10
取千位 /1000%10
*/
    string a,b,c;
    getline(cin,a);
    cin>>b>>c;
    int t=a.find(b,0);
    a.erase(t,b.size());
    a.insert(t,c);
    cout<<a;
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}

后面我的b和c用getline试了下,出问题了,但不知道怎么改

球大佬解答!!!!!


0
0
邹正洋
邹正洋
中级守护
中级守护

定义字符串数组   ans,a,b,c

输入没问题;

遍历字符串a

    如果a[i]是空格  计数器++

    否则  ans[计数器]加上a[i]

i从0到计数器

    如果ans[i]和b相等,输出b和空格

    否则 输出ans[i]和空格

                                                                                  

0
0
邹正洋
邹正洋
中级守护
中级守护

无

 

把空格数纪录下来,计数器是几现在遍历的就是第计数器+1个单词。

 

所以只要遍历计数器+1个单词然后判断是不是要替换的单词就可以了。

 

 

用字符串的话,应该可以,只是判断有点麻烦。

 

 

@万韧山

0
邹正洋
邹正洋
中级守护
中级守护

ans是字符串数组

a,b,c是字符串

 

无

这个问题看缩进

 

 

 

 

当然是另一个循环

 

 

 

抱歉,没写清楚。

 

 

0
我要回答