用C语言实现输入一个字符串,用C语言实现输入一个字符串,过滤掉所有的非数字字符,得到由数字组成的字符串并输出过滤掉所有的非数字字符,得到由数字组成的字符串并输出
时间: 2024-12-16 12:17:32 浏览: 26
在C语言中,你可以通过遍历输入的字符串,并利用ASCII码特性来实现这个功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的函数
// 函数用于过滤并返回数字字符串
char* filter_numbers(char input[]) {
int len = strlen(input);
char filtered[len + 1]; // 新字符串的大小加1,以容纳潜在的'\0'
filtered[0] = '\0'; // 初始化为空字符串
for(int i = 0; i < len; i++) {
if(isdigit(input[i])) { // 检查字符是否为数字
filtered[i] = input[i]; // 如果是数字,则添加到新字符串
}
}
// 确保最后一个字符是'\0'
if(filtered[len - 1] != '\0') {
filtered[len] = '\0';
}
return filtered;
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 从标准输入读取字符串,包含换行符
// 移除fgets读取的换行符
str[strlen(str) - 1] = '\0';
char* filtered_str = filter_numbers(str);
printf("过滤后的数字字符串:%s\n", filtered_str);
free(filtered_str); // 释放内存,避免内存泄漏
return 0;
}
```
在这个程序中,`filter_numbers`函数逐个检查输入的字符,如果字符是数字,就将其复制到新的`filtered`数组里。`main`函数则获取用户输入,然后调用这个函数,并打印结果。
阅读全文