C语言输入一行字符既有数字也有非数字字符,将其中连续的数字作为一个整数依次序放入一个数组中,统计有有多少个整数并输出
时间: 2025-02-13 22:23:40 浏览: 59
在C语言中,处理这种字符串混合数字和非数字字符的情况,可以采用指针和循环相结合的方式来完成。首先,我们可以遍历整个字符串,当遇到数字字符时,开始一个新的整数;当遇到非数字字符时,检查当前数字是否完整(通过比较字符是否为'\0'),如果完整则转换成整数并存入数组,同时计数加一。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
int num_count = 0; // 记录整数个数
int numbers[100]; // 数组用于存储整数
int index = 0; // 数字数组的索引
printf("请输入一行字符(包含数字和非数字): ");
fgets(input, sizeof(input), stdin); // 从标准输入读取一行数据
for (int i = 0; input[i] != '\0'; ++i) {
if (isdigit(input[i])) { // 如果字符是数字
// 检查当前是否已经形成完整的数字
if (!index) {
numbers[index++] = input[i] - 1] *= 10; // 累加进上一个数字
numbers[index++] = input[i] - '0'; // 添加新的数字
}
} else { // 非数字字符结束一个整数
if (index > 0) { // 只有当已经有数字时才计数
++num_count;
}
index = 0; // 重置当前数字
}
}
// 最后一个整数需要单独处理
if (index > 0) {
++num_count;
}
printf("共有 %d 个整数:\n", num_count);
for (int i = 0; i < num_count; ++i) {
printf("%d ", numbers[i]); // 输出整数
}
printf("\n");
return 0;
}
```
当你运行这个程序,并输入包含数字和非数字的行时,它会按照描述的方式处理并显示结果。
阅读全文
相关推荐
















