用指针的方法删除字符串中的c
时间: 2023-05-18 14:02:35 浏览: 42
可以使用指针遍历字符串,找到需要删除的字符,然后将后面的字符向前移动一个位置,最后将字符串的长度减1即可。以下是示例代码:
```c
void deleteChar(char *str, char c) {
char *p = str;
while (*p != '\0') {
if (*p == c) {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
str[strlen(str) - 1] = '\0';
} else {
p++;
}
}
}
```
调用该函数可以删除字符串中的指定字符:
```c
char str[] = "hello world";
deleteChar(str, 'l');
printf("%s\n", str); // 输出 "heo word"
```
注意,该函数只能删除第一个匹配到的字符,如果需要删除所有匹配到的字符,可以在内部加一个循环。
相关问题
用字符指针删除字符串中的所有指定字符c语言
可以使用指针和循环遍历字符串,找到指定字符并删除。具体实现可以参考下面的代码:
```c
void deleteChar(char* str, char c) {
char* p = str;
while (*p != '\0') { // 遍历字符串
if (*p == c) { // 找到指定字符
char* q = p;
while (*q != '\0') { // 从指定字符位置开始,后面的字符向前移一位
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
```
调用该函数的方式为:
```c
char str[] = "hello world";
deleteChar(str, 'l');
printf("%s", str); // 输出heo word
```
注意,该函数会直接在原字符串上进行修改,所以需要传入字符数组的指针。另外,如果要删除多个指定字符,可以在函数内部添加循环即可。
用指针编写删除字符串中重复字符的函数
可以使用指针编写一个删除字符串中重复字符的函数,具体实现如下:
```c
void deleteDuplicateChar(char *str) {
if (str == NULL) {
return;
}
int len = strlen(str);
if (len < 2) {
return;
}
char *p = str;
while (*p != '\') {
char *q = p + 1;
while (*q != '\') {
if (*q == *p) {
char *r = q;
while (*r != '\') {
*r = *(r + 1);
r++;
}
len--;
} else {
q++;
}
}
p++;
}
*(str + len) = '\';
}
```
该函数的实现思路是,首先判断字符串是否为空或长度小于2,如果是则直接返回。然后使用指针p遍历字符串中的每个字符,再使用指针q从p的下一个字符开始遍历,如果发现有与p相同的字符,则使用指针r将该字符后面的所有字符向前移动一位,同时字符串长度减1。最后在字符串末尾添加一个空字符,表示字符串的结束。
例如,对于字符串"hello world",调用该函数后,字符串变为"helowrd",重复的字符l被删除了。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)