请使用C语言回答上面这个问题
时间: 2024-10-12 20:11:11 浏览: 30
12个有趣的C语言面试题
在C语言中,我们可以使用数组和索引来实现类似的功能,但由于没有内置的数据结构如哈希表,我们需要手动跟踪每个字符是否已见过。下面是一个简单的C语言解决方案:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_CHAR 256
bool visited[MAX_CHAR] = {false}; // 假设ASCII字符不超过256
void removeDuplicates(char *input) {
int index = 0;
for (int i = 0; input[i]; i++) {
if (!visited[input[i]]) {
printf("%c", input[i]);
visited[input[i]] = true;
index++;
}
}
}
int main() {
char input[] = "hello,welcome to xiaomi";
removeDuplicates(input);
return 0;
}
```
在这个例子中,`visited`数组表示字符是否已见过,我们遍历输入字符串,如果字符没被访问过,就打印出来并标记为已访问。需要注意的是,这种方法对大串字符效率较低,因为它需要线性时间检查每个字符。
阅读全文