C语言去除字符串里的特定字符["?",":","*","<",">","{","}","&","$"]
时间: 2024-09-20 16:04:23 浏览: 30
如果你需要从C语言的字符串中去除一系列特定字符,可以稍微修改上面提供的`remove_char`函数。这里我们直接在循环内判断并跳过那些特定字符:
```c
#include <stdio.h>
#include <string.h>
#define CHAR_TO_REMOVE_LIST {'?', ':', '*', '<', '>', '{', '}', '&', '$'}
void remove_chars(char *str) {
for (int i = 0; str[i] != '\0'; ++i) {
if (!strchr(CHAR_TO_REMOVE_LIST, str[i])) { // 使用strchr查找字符是否在列表中
*(str+i) = str[i]; // 如果不在列表中,则保留该字符
} else {
str[i] = '\0'; // 否则将该字符设为空字符终止字符串
}
}
}
int main() {
char str[] = "Hello, World! & $ { some special chars }";
remove_chars(str);
printf("String after removing specific characters: %s\n", str);
return 0;
}
```
在这个例子中,`CHAR_TO_REMOVE_LIST`是一个包含所有要移除字符的枚举数组,`strchr`函数用于检查当前字符是否在这组字符中。
阅读全文