使用C语言写出这样一个函数:输入一行数字,可以读取出输入多少个数字
时间: 2024-10-14 13:06:46 浏览: 23
一个用C语言编写的程序,利用队列打印杨辉三角.pdf
在C语言中,我们可以编写一个函数,它会读取用户的输入直到遇到非数字字符,然后返回读取到的数字的数量。这个过程通常通过循环和`isdigit()`函数来实现。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含isdigit函数
int read_numbers(char input[], size_t max_length) {
int count = 0; // 初始化数字计数器
while (count < max_length) { // 只读取max_length个数字
char c = getchar(); // 从标准输入获取下一个字符
if (!isdigit(c)) { // 非数字字符,跳出循环
break;
}
input[count] = c - '0'; // 将数字字符转换为整数值并存储
count++; // 数字计数加一
if (c == '\n') { // 如果遇到换行符,也认为读取完毕
break;
}
}
input[count] = '\0'; // 添加空字符终止字符串
return count; // 返回实际读取到的数字个数
}
int main() {
char numbers[100]; // 假设最多输入99个数字
int num_count = read_numbers(numbers, sizeof(numbers));
printf("Read %d numbers: ", num_count);
for (int i = 0; i < num_count; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
此函数会读取用户输入的一行数字,并返回其中的数字个数。如果你想要处理用户可以输入任意长度的情况,需要在调用函数时提供足够的缓冲区大小。
阅读全文