#include <stdio.h> int main(){ char c[100]; gets(c); } 找出c数组里的所有数并存入新的数组里
时间: 2024-02-25 10:54:42 浏览: 61
C语言程序设计第三版谭浩强课后习题
好的,我可以帮你实现这个功能。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char c[100];
int n = 0; // 数字个数
int* nums = (int*)malloc(100 * sizeof(int)); // 存储数字的数组
gets(c);
for (int i = 0; c[i] != '\0'; i++) {
if (c[i] >= '0' && c[i] <= '9') { // 判断是否为数字字符
int num = c[i] - '0'; // 将字符转换为数字
i++;
while (c[i] >= '0' && c[i] <= '9') {
num = num * 10 + (c[i] - '0');
i++;
}
nums[n++] = num; // 存储数字
}
}
// 输出数字数组中的数字
printf("Numbers in the array:\n");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
free(nums); // 释放内存
return 0;
}
```
这段代码中,我使用 gets() 函数从标准输入中读取一个字符串,并且遍历这个字符串中的每个字符。如果该字符为数字字符,我就将其转换为数字,存储到一个新的数组中。需要注意的是,一个数字可能不止一位,因此在遍历字符数组时,需要判断连续的数字字符,并将其转换为一个完整的数字。最后,我输出存储数字的数组中的所有数字。需要注意的是,在使用 malloc() 函数动态分配内存后,需要使用 free() 函数释放内存,避免内存泄漏。
阅读全文