整数提取

875 词

题目描述

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

$$A123x456.17960?302t ab5876$$

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

输入

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

输出

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

样例输入

1
A123x456.17960?302t ab5876

样例输出

1
2
3
4
5
6
5
123
456
17960
302
5876

提示

学会将一个数字字符序列(数字字符串)转换成一个整数

如”456”–>456

可按十进制数制进行转换

题解

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
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

int main() {
char s[1000];
int a[1000];
getchar();
gets(s);
int i, l, t = 0, sum = 0, h = 0;
l = strlen(s);
for (i = 0; i < l; i++) {
if (s[i] >= '0' && s[i] <= '9') {
sum = sum * 10 + (s[i] - '0');
if (s[i + 1] < '0' s[i + 1] > '9') {
a[h] = sum;
h++;
sum = 0;
}
}
}
printf("%d\n", h);
for (i = 0; i < h; i++)
printf("%d\n", a[i]);
return 0;
}