C语言编程实现,从键盘上录入一段文字(40个字符以内),筛选出其中的数字字符,并将它存入一个字符数组。
时间: 2023-11-29 16:06:49 浏览: 72
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 40
int main() {
char str[MAX_LEN + 1], num[MAX_LEN + 1];
int len, numLen = 0;
printf("请输入一段文字(不超过40个字符):\n");
fgets(str, MAX_LEN + 1, stdin);
len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') {
num[numLen++] = str[i];
}
}
num[numLen] = '\0';
printf("筛选出的数字字符为:%s\n", num);
return 0;
}
```
程序先输入一段文字,然后遍历字符串,如果遇到数字字符就将其存入 `num` 数组中。最后输出 `num` 数组中存储的数字字符。需要注意的是,使用 `fgets` 函数输入字符串时,会自动在输入字符串末尾添加一个换行符,因此在存储数字字符时需要手动将末尾添加的换行符替换成字符串结束符 `\0`。
相关问题
c语言编写针对从键盘上录入的一段文字(40个字符以内),在自定义函数内筛选出其中的数字字符,并将它存入一个字符数组。
好的,这是一个比较基础的 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` 函数对输入字符串进行处理,并将结果输出到屏幕上。
希望这个参考代码能够帮助你解决问题!
用C语言编程实现从键盘上任意输入一个字符串S输出其中的数字字符之和
可以使用C语言中的字符数组和循环语句来实现从键盘上输入一个字符串S,并输出其中的数字字符之和的功能。具体实现代码如下:
```c
#include <stdio.h>
int main() {
char str[100]; // 定义一个字符数组,用于存储输入的字符串
int sum = 0; // 定义一个变量,用于存储数字字符之和
printf("请输入一个字符串:");
scanf("%s", str); // 从键盘上读入一个字符串
for (int i = 0; str[i] != '\0'; i++) {
// 遍历字符串中的每一个字符,判断是否为数字字符
if (str[i] >= '0' && str[i] <= '9') {
// 如果是数字字符,则将其转换为整数并加到数字字符之和中
sum += str[i] - '0';
}
}
printf("数字字符之和为:%d\n", sum); // 输出数字字符之和
return 0;
}
```
上述代码中,我们首先定义了一个字符数组 `str`,用于存储输入的字符串。然后通过 `scanf()` 函数从键盘上读入一个字符串,并使用 `for` 循环遍历该字符串中的每一个字符。在循环中,我们使用 `if` 语句判断当前字符是否为数字字符,如果是,则将其转换为整数并加到数字字符之和 `sum` 中。最后输出数字字符之和即可。