[C语言][字符串]输入一个字符串,把该字符串中的正整数数字提取出来,保存到一个int num[N]数组里并打印。 Eg: 输入:abc123+456def66 Num: 123 456 66
时间: 2024-09-24 09:03:30 浏览: 42
C语言字符串函数大全
在C语言中,为了实现这个功能,你需要编写一段代码来读取字符串、检测其中的数字,并将它们转换成整数存入数组。这里是一个简单的示例,我们假设字符串中只有连续的数字,且每个数字之间有非数字字符分隔:
```c
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
void extract_numbers(const char* str, int num[], int N) {
int i = 0;
for (char c : str) {
if (isdigit(c)) {
num[i++] = atoi(&c); // 转换字符到整数并存入数组
// 如果超过数组大小,可以在这里添加错误处理,如提示溢出或提前结束函数
}
else {
// 遇到非数字字符,停止当前数字的解析
break;
}
}
num[i] = 0; // 结束标记,表示实际使用的元素个数
// 打印数组内容
for (int j = 0; num[j]; ++j) {
printf("%d ", num[j]);
}
printf("\n");
}
int main() {
const char* input = "abc123+456def66";
int num[100]; // 临时数组,实际应用中需要预估最大可能的数字个数
int N = sizeof(num) / sizeof(num[0]);
extract_numbers(input, num, N);
return 0;
}
```
在这个例子中,`isdigit()` 函数用于检查字符是否是数字,`atoi()` 函数则将字符串中的数字字符转换为整数。注意,这只是一个基本实现,真实场景下可能需要考虑边界条件、空指针、非法字符等情况。
阅读全文