c语言定义removeDuplicates字符串去重操作
时间: 2024-09-29 09:12:34 浏览: 33
用C语言实现字符串去重功能
在C语言中,对字符串进行去重操作并不直接支持像数组那样提供内置的函数。不过,你可以通过遍历整个字符串并创建一个新的字符串,只将未出现过的字符添加进去的方式来实现这个功能。以下是一个简单的示例,利用了字符数组和临时指针:
```c
#include <stdio.h>
#include <string.h>
char* removeDuplicates(char* str) {
if (str == NULL || strlen(str) == 0) {
return str;
}
int len = strlen(str);
// 初始化一个新的字符串,用于存储去重后的结果
char result[len + 1];
int j = 0; // 结果字符串的新位置
for (int i = 0; i < len; ++i) {
// 如果当前字符尚未出现在新字符串中,则添加
if (result[j] != str[i]) {
result[j++] = str[i]; // 新的位置加一
}
}
// 确保最后的空字符也被添加到结果字符串
result[j] = '\0';
// 返回指向结果字符串的指针,而不是复制整个字符串
return result;
}
int main() {
char str[] = "helloo";
char* uniqueStr = removeDuplicates(str);
printf("Original: %s\n", str);
printf("Unique: %s\n", uniqueStr); // 输出 "Original: helloo Unique: hello"
free(uniqueStr); // 释放内存
return 0;
}
```
阅读全文