c编写不使用#include <ctype.h>程序完成字符串过滤,输入一个字符串,过滤此串,只保留串中的非数字字符
时间: 2024-12-15 18:23:56 浏览: 15
在C语言中,如果你想要编写一个程序来过滤字符串,只保留非数字字符,你可以遍历字符串并检查每个字符是否为数字。如果字符不是数字,则将其保留在新字符串中。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数来检查字符是否为数字
int is_digit(char c) {
return !isdigit(c);
}
// 过滤函数
void filter_string(char *input, char *output) {
int i = 0;
for (i = 0; input[i] != '\0'; ++i) {
if (!is_digit(input[i])) {
output[i] = input[i];
}
else {
output[i] = '\0'; // 如果遇到数字则停止添加到新字符串
break;
}
}
output[i] = '\0'; // 添加字符串结束符
}
int main() {
char str[100], filtered_str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 注意这里需要处理换行符
// 删除fgets读取的末尾换行符
str[strcspn(str, "\n")] = '\0';
filter_string(str, filtered_str);
printf("过滤后的字符串: %s\n", filtered_str);
return 0;
}
```
在这个例子中,`filter_string`函数通过`is_digit`函数检查输入字符串的每个字符,如果不是数字就复制到输出字符串`filtered_str`中。最后,`main`函数从用户获取输入并显示过滤后的结果。
阅读全文