题目内容:输入一个字符串,内有数字和非数字字符。例如:a123x456 17960 302tab5876。将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。

输入格式:输入一个字符串(允许空格)。

输出格式:第1行输出个数,第2行输出多个整数,用空格分隔。

输入样例:a123X456  7689?89njmk32lnk123

输出样例:

6

123 456 7689 89 32 123

解决思路:
最近同时在学C++和python,正好python又学到正则表达式,

所以我想试试怎么用C++的正则,这样可以大大减少代码数目!

写完之后在VScode里的结果都能对上,但是贴到OJ之后程序运行错误。

而且后面搜了一圈,没有像我一样用正则做这道题的,所以分享一下代码~

 1 #include <iostream>
2 #include <string>
3 #include <regex>
4 using namespace std;
5 int main()
6 {
7 regex pattern("\\d+");
8 string content;
9 getline(cin, content);
10 smatch result;
11 int count = 0;
12 auto begin = content.cbegin();
13 auto end = content.cend();
14 while (regex_search(begin, end, result, pattern))
15 {
16
17 count += 1;
18
19 begin = result[0].second;
20 }
21 cout << count << endl;
22 begin = content.cbegin();
23
24 while (regex_search(begin, end, result, pattern))
25 {
26
27 cout << result[0];
28 begin = result[0].second;
29 if (begin != end)
30 cout << " ";
31 }
32 return 0;
33 }

这个是没有末尾空格的

下面这个是有末尾空格的

 1 #include <iostream>
2 #include <string>
3 #include <regex>
4 using namespace std;
5 int main()
6 {
7 regex pattern("\\d+");
8 string content;
9 getline(cin, content);
10 smatch result;
11
12 int count = 0;
13 int n = result.size();
14 string m[n];
15
16 auto begin = content.cbegin();
17 auto end = content.cend();
18 while (regex_search(begin, end, result, pattern))
19 {
20
21 count += 1;
22 begin = result[0].second;
23 }
24
25 cout << count << endl;
26 begin = content.cbegin();
27 while (regex_search(begin, end, result, pattern))
28 {
29
30 cout << result[0] << " ";
31 begin = result[0].second;
32 }
33
34 return 0;
35 }

输入一个字符串,内有数字和非数字字符。例如:a123x456 17960 302tab5876。将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。的更多相关文章

  1. 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。

      #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> i ...

  2. input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格

    以下代码:input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格 //input验证码框,输入非数字或非12位时,红框提示;每3位加一个空格 $(".text"). ...

  3. input输入框中只能输入数字,非数字字符自动清除

    前言:项目中有个缴纳保证金的功能,要是输入框只能输入数字,不能输入其他字符. ①HTML代码:<input class="input-box" type="text ...

  4. typeof操作符返回一个字符串,表示未经计算的操作数的类型。

    typeof操作符返回一个字符串,表示未经计算的操作数的类型.   语法 typeof运算符后跟操作数: typeof operand or typeof (operand) 参数 operand 是 ...

  5. 算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。

    [题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左 ...

  6. Java判断一个字符串str不为空:方法及时间效率

    判断一个字符串str不为空的方法有: 1.str == null; 2.”“.equals(str): 3.str.length <= 0; 4.str.isEmpty(): 注意:length ...

  7. asp.net 关于字符串内范围截取的一点方法总结

    前两天有一位网友提出了一个字符串内截取字符串的问题,除了用普通的字符串截取的方式外,我推荐的是用LINQ方式来截取.两者实际上差别不是很大,都是采用字符串截取方式,但后者从写法和观察效果会比前者简单实 ...

  8. Java第十二次作业:什么是一维数组?什么是对象数组?吃金币游戏2.0版 新增炸弹功能 新增游戏倒计时功能 新增胜利失败检测功能 使用如鹏游戏引擎制作窗体 一维数组设置金币

    什么是数组? 数组的定义:是用统一的名字代表这批数据,用序号来区分各个数据.数组是无序的数据元素按有序的下标组成的集合,分配固定空间大小的一种容器. 如何理解:其实就是一个同时放很多数据的变量. a= ...

  9. 按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    int[]x=new int [50]; char[][]y=new char[10][10]; int j=1,w=0; for(int i=0;i<50;i++) { x[i]=j; j+= ...

随机推荐

  1. C++图像处理算法入门前言

    一  前言 由于面试时,很多面试官一直强调算法才是根本,编代码不是.有以下两个原因: 第一个原因:即要想成为一名合格的应用工程师(不管是软件还是硬件),都得以学习算法,动手实现算法为核心,这才是核心竞 ...

  2. GitHub还能这样玩,这次我真是开了眼了

    哈喽,大家好,我是指北君. 我会一直在"开源指北"公众号给大家分享各种有趣. 实用与最前沿的开源项目,还有各种互联网干货, 今天主要给大家分享一下GitHub的一些使用技巧,帮助你 ...

  3. 不会DRF?源码都分析透了确定不来看?

    目录 不会DRF?源码都分析透了确定不来看? 快速使用DRF写出接口 序列化和反序列化 drf快速使用 views.py serializer.py urls.py 在settings的app中注册 ...

  4. hashCode()方法的作用?

    hashCode()方法与equals()方法相似,都是来自java.lang.Object类的方法,都允许用户定义的子类重写这两个方法. 一般来说,equals这个方法是给用户调用的,如果你想根据自 ...

  5. Ajax的核心的对象是什么?

    Ajax的核心对象是XMLXMLHttpRequest 对象. XMLHttpRequest提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端接受数据,在 ...

  6. 为什么我们调用 start()方法时会执行 run()方法,为什么 我们不能直接调用 run()方法?

    当你调用 start()方法时你将创建新的线程,并且执行在 run()方法里的代码. 但是如果你直接调用 run()方法,它不会创建新的线程也不会执行调用线程的代码, 只会把 run 方法当作普通方法 ...

  7. spring-boot-关于module自定义jar包打包无法给其他module使用

    ####世界大坑: 如果仅是使用 <build> <plugins> <plugin> <groupId>org.springframework.boo ...

  8. java-file类 hei

    File类 /* java.io.File类 文件和目录轮径的抽象形式 java把电脑种的文件和文件夹,封装为一个file类,我们可以使用file类对文件和文件夹进行曹祖 使用File类的方法 创建一 ...

  9. Linux 搭建Apollo

    简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...

  10. 树莓派系统安装(ubuntu版本)无需屏幕

    0.前提 所需物品:一个手机.一台电脑.一个树莓派.一张tf卡和一个读卡器.所需软件:Win32DiskImager.putty还需要ubuntu系统镜像源.这些我都放在百度网盘上了链接:https: ...