pta C语言 删除重复字符
时间: 2024-12-24 15:15:28 浏览: 8
pta C语言编程题-查找书籍
在C语言中,删除字符串中的重复字符通常涉及到遍历字符串并维护一个集合(如哈希表或数组)来记录已见字符,然后将非重复字符重新构建到新字符串中。下面是一个简单的示例,使用了字符数组和索引来实现这个功能:
```c
#include <stdio.h>
#include <stdbool.h> // 使用布尔类型
// 创建一个函数,用于检查字符是否已经存在于结果字符串中
bool is_char_in_result(char* result, char c) {
int i;
for (i = 0; result[i] != '\0'; i++) {
if (result[i] == c)
return true;
}
return false;
}
// 主函数,接受输入字符串并返回去重后的字符串
char* remove_duplicates(char* input) {
int len = strlen(input);
char result[len + 1]; // 空间留一个'\0'
bool visited[128]; // 假设ASCII字符集大小
memset(visited, false, sizeof(visited));
int j = 0;
for (int i = 0; i < len; i++) {
if (!visited[input[i]]) { // 如果字符未见过
result[j++] = input[i];
visited[input[i]] = true;
}
}
result[j] = '\0'; // 结束字符串
return result;
}
int main() {
char str[] = "helloo world";
char* unique_str = remove_duplicates(str);
printf("去除重复字符后的字符串: %s\n", unique_str);
free(unique_str); // 释放内存,注意手动管理内存
return 0;
}
```
阅读全文