用c++写一个字符串去重
时间: 2023-06-02 14:03:37 浏览: 129
可以使用哈希表来实现字符串去重,具体的思路是遍历字符串的每个字符,将每个字符都存入哈希表中,如果发现哈希表中已经含有该字符,则说明该字符重复,可以直接将其删除。最后再将哈希表中的字符重组成一个新的字符串即可。
下面是用 C 语言实现字符串去重的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define HASH_SIZE 256
void removeDuplicates(char* str) {
int i, j;
int hash[HASH_SIZE] = {0};
// 遍历字符串
for (i = j = 0; i < strlen(str); i++) {
// 判断当前字符是否已经存在于哈希表中
if (!hash[str[i]]) {
hash[str[i]] = 1; // 如果不存在,标记为出现过
str[j++] = str[i]; // 将当前字符添加到结果字符串中
}
}
str[j] = '\0'; // 添加字符串结尾标记
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 去重操作
removeDuplicates(str);
printf("去重后的字符串为:%s", str);
return 0;
}
```