问题标题: 酷町堂:2829 字符串擦除字符

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

题目描述 Description

给出一个字符串a,和另外一个字符b。试从字符串a中将字符b全部删除。并输出删除之后字符串a的结果。字符串a和b全部由小写字母组成。

输入描述 Input Description

两行,第一行一个字符串a,第二行一个字符b

输出描述 Output Description

经处理的字符串a

样例输入 Sample Input

abcdefghijk a

样例输出 Sample Output

bcdefghijk

#include <iostream>

using namespace std;

int main(){

string a;

char b;

getline(cin,a);

cin>>b;

int cnt;

while(a[cnt]==b&&cnt<a.size()){

a.erase(cnt,1);

cnt+=1;

}

if(a[a.size()-1]==b){

a.erase(a.size()-1,1);

}

cout<<a;

return 0;

}

?????????????????????????????

跪拜巨佬


0
已采纳
陈正朔
陈正朔
初级光能
初级光能

你的代码错在b字符在字符串中的位置不一定是连续的

正解思路很简单

遍历字符串,如果a[i]==b,则a.erase(cnt,1); i--

最后输出a

陈正朔在2021-03-16 17:59:44追加了内容

写错了,是a.erase(i,1)

我要回答