用指针编写删除字符串中重复字符的函数
时间: 2023-04-18 18:01:29 浏览: 117
可以使用指针编写一个删除字符串中重复字符的函数,具体实现如下:
```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被删除了。