c语言编写针对从键盘上录入的一段文字(40个字符以内),在自定义函数内筛选出其中的数字字符,并将它存入一个字符数组。
时间: 2024-02-09 19:09:05 浏览: 72
好的,这是一个比较基础的 C 语言编程问题,我可以给你提供一个参考代码,帮助你实现这个功能。
```
#include <stdio.h>
#include <ctype.h>
void extract_digits(char input[], char output[]) {
int i, j = 0;
for (i = 0; input[i] != '\0' && j < 40; i++) {
if (isdigit(input[i])) {
output[j++] = input[i];
}
}
output[j] = '\0';
}
int main() {
char input[40];
char output[40];
printf("请输入一段文字(40个字符以内):");
fgets(input, 40, stdin);
extract_digits(input, output);
printf("筛选出的数字为:%s\n", output);
return 0;
}
```
这个程序中定义了一个 `extract_digits` 函数,它接受两个参数,一个是输入的字符串 `input`,另一个是输出的字符串 `output`。函数的功能是从输入的字符串中筛选出数字字符,并将它们存入输出字符串中。具体实现过程如下:
1. 使用 `for` 循环遍历输入字符串中的每一个字符,直到遇到字符串结尾或者输出字符串已经存满为止。
2. 对于每一个字符,使用 `isdigit` 函数判断它是否是数字字符。
3. 如果是数字字符,就将它存入输出字符串中,并将输出字符串的下标 `j` 加 1。
4. 最后,在输出字符串的末尾添加一个字符串结尾符号 `\0`,表示输出字符串的结束。
在主函数中,首先使用 `fgets` 函数读取用户输入的字符串,然后调用 `extract_digits` 函数对输入字符串进行处理,并将结果输出到屏幕上。
希望这个参考代码能够帮助你解决问题!
阅读全文