编写字符串去重复函数deDuplication() 要求:使用指针,打印原字符串和去重复的字符串。如:输入“ABCBCD”,输出“ABCD”
时间: 2024-12-11 07:18:58 浏览: 31
可以编写一个名为`deDuplication()`的函数,该函数接收一个指向字符串的指针,然后遍历字符串,去除重复字符。以下是用C语言实现的一个例子:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h> // 添加bool类型,用于标记是否遇到重复字符
void deDuplication(char *str) {
int index = 0; // 初始化新字符串的索引
bool seen[256] = {false}; // 创建一个布尔数组,256是为了处理ASCII字符
for (size_t i = 0; str[i] != '\0'; i++) {
if (!seen[str[i]]) { // 如果字符未见过
str[index++] = str[i]; // 将字符添加到新字符串
seen[str[i]] = true; // 标记已见过此字符
}
}
str[index] = '\0'; // 结束新字符串
printf("原字符串: %s\n", str);
printf("去重复后的字符串: %s\n", str);
}
int main() {
char input[] = "ABCBCD";
deDuplication(input);
return 0;
}
```
在这个函数中,我们使用了一个布尔数组`seen`来跟踪每个字符是否已经出现过。当遇到一个新的字符时,就将其添加到新字符串中,并更新`seen`数组。最后输出原始字符串和处理后的无重复字符串。
阅读全文