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;
}


相关文章
|
6天前
|
存储
【字符串】最长不含重复字符的子字符串
【字符串】最长不含重复字符的子字符串
|
6天前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
6天前
|
算法 测试技术 C#
【前缀和】3085. 成为 K 特殊字符串需要删除的最少字符数
【前缀和】3085. 成为 K 特殊字符串需要删除的最少字符数
|
11月前
|
算法
每日一题——找出字符串中第一个匹配项的下标(实现strStr)(暴力解法)
每日一题——找出字符串中第一个匹配项的下标(实现strStr)(暴力解法)
|
12月前
|
数据安全/隐私保护 索引
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
125 0
|
12月前
7-121 删除字符串中的子串
7-121 删除字符串中的子串
46 0
|
算法
LeetCode:28. 找出字符串中第一个匹配项的下标
题目描述:给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。
|
算法 Java C语言
找出字符串中第一个匹配项的下标 (LeetCode 28)
找出字符串中第一个匹配项的下标 (LeetCode 28)
181 0
C/C++编程题之删除字符串中出现次数最少的字符
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
|
Java
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
101 0
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)