定义一个函数,删除字符串中重复的字符,每个字符只出现一次 c语言
时间: 2024-05-07 19:21:03 浏览: 21
以下是一个基于C语言的函数,可以删除字符串中重复的字符,只留下每个字符的第一个出现。
```c
#include <stdio.h>
#include <string.h>
void removeDuplicates(char *str) {
int len = strlen(str);
if (len < 2) {
return;
}
int tail = 1;
for (int i = 1; i < len; i++) {
int j;
for (j = 0; j < tail; j++) {
if (str[i] == str[j]) {
break;
}
}
if (j == tail) {
str[tail++] = str[i];
}
}
str[tail] = '\0';
}
int main() {
char str[] = "hello world";
removeDuplicates(str);
printf("%s\n", str);
return 0;
}
```
在这个函数中,我们使用了两个指针,一个是tail指针,它始终指向当前不重复的最后一个字符,另一个是i指针,它从第二个字符开始向后遍历。对于每个i指向的字符,我们在tail指针之前寻找是否存在相同的字符,如果没有找到,则将这个字符添加到tail指针的后面,并将tail指针向后移动一位。最后,我们在tail指针的位置插入一个空字符,以表示字符串的结尾。