C语言][字符串]输入一个字符串,把该字符串中的正整数数字提取出来,保存到一个int num[N]数组里并打印。
时间: 2024-09-23 10:04:27 浏览: 39
南开一百题
在C语言中,你可以通过遍历字符串、逐字符分析并转换为整数的方式来实现这个功能。这里是一个简单的示例程序,它会读取用户输入的字符串,检查每个字符是否代表正整数,并将它们存储到`num[]`数组中:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_DIGITS 10 // 最大数字位数
void extract_numbers(char str[], int num[], int* count) {
*count = 0; // 初始化计数器
for (int i = 0; str[i]; i++) { // 遍历字符串
if (isdigit(str[i])) { // 检查字符是否为数字
char temp[MAX_DIGITS + 1]; //临时存储数字
int j = 0;
while (i < strlen(str) && isdigit(str[i])) { // 把连续数字存入temp
temp[j++] = str[i++];
}
temp[j] = '\0'; // 结束字符串
num[*count] = atoi(temp); // 转换为整数并存储
(*count)++;
}
}
}
int main() {
char input[100];
printf("请输入一个包含数字的字符串: ");
fgets(input, sizeof(input), stdin);
int num[MAX_DIGITS], count = 0;
extract_numbers(input, num, &count);
if (count > 0) {
printf("提取到的正整数有: ");
for (int i = 0; i < count; i++) {
printf("%d ", num[i]);
}
} else {
printf("未找到任何正整数。\n");
}
return 0;
}
```
当你运行此程序并输入包含数字的字符串时,它会提取出所有正整数并打印。
阅读全文