整数提取-题解

描述

输入一个字符串,内含数字和非数字字符,如:

A123x456.17960?302t ab5876

将其中连续的数字作为一个整数,依次存放在一个整型数组中(假设数组名为a)。如上例所示,将123放在a[0]中,456放在a[1]中,17960放在a[2]中,……..,同时统计整数的个数并输出相关的信息。

输入描述

一行字符串(以回车结束),可含空格

输出描述

输出数据分多行,每行一个数据。其中第一行是字符串中包含的整数个数,从第二行开始依次输出各个整数。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <bits/stdc++.h>
using namespace std;
bool is_num(string s){
for(char c:s){
if(!isdigit(c)){
return 0;
}
}
return 1;
}
int main(){
string in;
getline(cin,in);
string tmp = "";
string temp = "";
vector<int> ans;
in = in+" ";
for(int i = 0;i<in.size();i++){
temp.push_back(in[i]);
if(is_num(temp)){
tmp.push_back(in[i]);
}else{
if(tmp != ""){
ans.push_back(stoi(tmp));
}
temp = "";
tmp = "";
}
}
cout << ans.size() << endl;
for(int i:ans){
cout << i << endl;
}
}

整数提取-题解
https://chenxi-tijie.pages.dev/2025/07/整数提取-题解/
作者
chenxi
发布于
2025年7月5日
许可协议