c 实现字符串中去除某个字符
时间: 2023-09-13 07:14:03 浏览: 48
可以使用指针和循环来实现字符串中去除某个字符的操作。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_char(char *str, char c) {
char *p = str;
while (*p) {
if (*p == c) {
memmove(p, p + 1, strlen(p + 1) + 1);
} else {
p++;
}
}
}
int main() {
char str[] = "hello world";
remove_char(str, 'l');
printf("%s\n", str); // 输出 "heo word"
return 0;
}
```
在这个示例代码中,`remove_char` 函数接收两个参数,一个是要操作的字符串 `str`,另一个是要去除的字符 `c`。函数中使用指针 `p` 遍历字符串中的每个字符,如果 `p` 指向的字符等于 `c`,则使用 `memmove` 函数将其后面的字符往前移动一个位置,覆盖当前字符,实现去除字符的操作。如果 `p` 指向的字符不等于 `c`,则继续遍历下一个字符。最终,函数修改了传入的字符串,去除了指定的字符。
注意,在调用 `memmove` 函数时,需要将第三个参数设为 `strlen(p + 1) + 1`,这是因为需要将字符串中的空字符一起移动,确保字符串的结尾正确。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)