C语言 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,以此存放到一个数组a中,统计共有多少个整数,并输出这些整数
时间: 2023-06-25 13:05:59 浏览: 309
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[100];
int a[100], count = 0, num = 0;
printf("请输入一个字符串:");
fgets(str, 100, stdin);
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
num = num * 10 + (str[i] - '0');
} else {
if (num != 0) {
a[count++] = num;
num = 0;
}
}
}
if (num != 0) {
a[count++] = num;
}
printf("共有%d个整数,它们是:", count);
for (int i = 0; i < count; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
代码思路解析:
1. 定义一个字符数组 `str` 存储用户输入的字符串。
2. 定义一个整型数组 `a` 存储提取出来的整数。
3. 定义一个变量 `count` 记录整数的个数。
4. 定义一个变量 `num` 用于暂时存放正在处理的整数。
5. 使用 `fgets` 函数从标准输入流中读取用户输入的字符串存入 `str` 数组中。
6. 遍历 `str` 数组的每个字符,如果是数字字符,则将其添加到 `num` 中,否则将 `num` 存入 `a` 数组中,并将其清零,同时 `count` 加 1。
7. 如果最后一段字符是数字字符,需要再将其存入 `a` 数组中。
8. 输出整数的个数和每个整数。
阅读全文