C语言编写一个函数,可以将字符串非字符过滤掉,输出新字符
时间: 2024-09-19 21:06:20 浏览: 60
在C语言中,你可以通过遍历字符串并检查每个字符是否是非字符(例如空格、制表符等),如果不是字母、数字或特殊字符,则将其保留。下面是一个简单的示例函数,它使用`isalnum()`函数来判断字符是否为字母或数字:
```c
#include <ctype.h> // 引入ctype库,包含isalnum()函数
void filter_string(char *input_str, char *output_str) {
int i = 0;
while (input_str[i]) { // 遍历输入字符串直到遇到空字符
if (isalnum(input_str[i])) { // 如果是字母或数字
output_str[i] = input_str[i]; // 将其复制到结果字符串
i++;
}
else { // 否则忽略
output_str[i] = '\0'; // 结果字符串保持之前的位置不变
}
i++; // 移动指针到下一个字符
}
output_str[i] = '\0'; // 确保输出字符串结束
}
// 使用示例
int main() {
char str[] = "Hello! World 123";
char filtered_str[64];
filter_string(str, filtered_str);
printf("Filtered string: %s\n", filtered_str);
return 0;
}
```
在这个例子中,`filter_string`函数接受两个参数,原字符串`input_str`和新生成的不含非字符的字符串`output_str`。函数会遍历输入字符串,并只把字母和数字添加到输出字符串。
阅读全文