7-29 删除字符串中的子串 (20 分)

简介: 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。


输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。


输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。


输入样例:

1. Tomcat is a male ccatat
2. cat


输出样例:

Tom is a male


题目分析:

1.行输入getline

2.不是简单的暴力循环,而是不断地删除子串

3.要熟悉find,erase(string库)的用法


代码如下:

#include<iostream>
#include<string>
using namespace std;
int main()
{
  string input;
  string want_delete;
  getline(cin, input);//行输入
  getline(cin, want_delete);//行输入
  int x = input.find(want_delete);
  while (x!=string::npos) {//若find返回npos(-1),则循环结束
    input.erase(x, want_delete.length());//删除子字符串
    x = input.find(want_delete);//再次寻找(因为找到一个只会标记第一个位置)
  }
  cout << input;
  return 0;
}


目录
打赏
0
0
0
0
0
分享
相关文章
【字符串】最长不含重复字符的子字符串
【字符串】最长不含重复字符的子字符串
LeetCode第28题找出字符串中第一个匹配项的下标
这篇文章介绍了LeetCode第28题"找出字符串中第一个匹配项的下标"的两种解法:暴力解法和KMP算法,并解释了KMP算法通过构建前缀表来提高字符串搜索的效率。
LeetCode第28题找出字符串中第一个匹配项的下标
【前缀和】3085. 成为 K 特殊字符串需要删除的最少字符数
【前缀和】3085. 成为 K 特殊字符串需要删除的最少字符数
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
127 0
每日算法系列【LeetCode 424】替换后的最长重复字符
每日算法系列【LeetCode 424】替换后的最长重复字符
7-121 删除字符串中的子串
7-121 删除字符串中的子串
84 0
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
136 0
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)

热门文章

最新文章