删除字符串中的子串(C++ regex求解)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/95351389

题目描述:

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

输入格式:

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

输出格式:

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

输入样例:

Tomcat is a male ccatat
cat

输出样例:

Tom is a male 

解题思路:

删除字符串s1中出现的所有子串s2当然是无脑用正则表达式求解啊。额 本菜鸡之前有写过一篇关于C++正则表达式的博文:浅谈C++的regex库。在这里还是简单的介绍一下这道题涉及到的俩个函数:①regex_search:搜索匹配,根据正则表达式来搜索字符串中是否存在符合规则的子字符串;②regex_replace:替换匹配,可以将符合匹配规则的子字符串替换为其他字符串。

先用while+regex_search语句判断s1中能否匹配到子串s2,若s1中能匹配到s2则用regex_replace将s1中的s2替换成"",否则输出s1。

AC代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s1,s2;
    getline(cin,s1);
    getline(cin,s2);
    //题目要求删除字符串s1中的所有子串s2,直接无脑regex啊
    while(regex_search(s1,regex(s2)))   //若s1中能匹配到s2
    { 
        s1 = regex_replace(s1, regex(s2), "");    //将s1中的s2替换成""
    }   //直到s1不能匹配到s2为止
    cout << s1 << endl;
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏A周立SpringCloud

Java new一个对象的过程中发生了什么?

java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。

6710
来自专栏微卡智享

Android划矩形截屏并加入OCR识别

前面文章《Android SurfaceVeiw划矩形截屏存放到RecyclerView中》已经通过手指划矩形把图片存入到RecyclerView中了,以前也加...

14210
来自专栏中科院渣渣博肆僧一枚

Python 的 .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

10730
来自专栏微卡智享

C#之反射、元数据详解

  在本节中主要讲述自定义特性、反射 。自定义特性允许把自定义元数据与程序元素关联起来。这些元数据是在编译过程中创建的,并嵌入程序集中。反射是一个普通的术语,它...

11130
来自专栏跟Qt君学编程

qDebug | std::cout | printf性能表现

  通过使用qDebug,std::cout,printf在1秒内打印的字符串数据。

9520
来自专栏跟Qt君学编程

翻译 | 您没有做错(线程)

  这篇文章是关于QThread的使用的。这是对我当时的同事Brad三年前的博客帖子的回答:“您做错了”。

5510
来自专栏老九学堂

Java调用native本地方法实例:控制台下的中英文字符对齐问题

小伙伴们在初学Java的时候一般都是采用Eclipse或其他IDE环境,中英文混合时的对齐问题想必都或多或少地困扰过大家。

13110
来自专栏用户6269484的专栏

C和C++混合编译,extern和extern "C"

extern的问题在于你不知道这个关键字出现的时候到底是声明还是定义。  谨记:声明可以多次,但是定义只能有一次。

14610
来自专栏光城(guangcity)

STL 设计之 EBO(空基类优化)

本节从空类开始,到 STL 内部,到测试,再到我们自己实现一个 EBO,对比性能,最后再测试,总结。

6620
来自专栏数据猿

什么将会替代 JavaScript 呢?

JavaScript 正在蓬勃发展。但由于 WebAssembly 的出现,它的衰落可能只是一个时间问题。

11220

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励