如何用C语言编写一个函数来移除字符串中的重复字符并保持原有的顺序?
时间: 2024-11-15 18:26:06 浏览: 8
C语言中字符串处理函数介绍
在C语言中,可以使用数组和指针来编写一个函数来移除字符串中的重复字符并保留原有顺序。这里提供一种简单的思路:
```c
#include <stdio.h>
#include <string.h>
char* removeDuplicates(char* str) {
int n = strlen(str);
if (n == 0 || n == 1) return str; // 如果字符串为空或只包含一个字符,无需处理
int index = 0;
char uniqueChars[n];
for (int i = 0; i < n; ++i) {
if (uniqueChars[index] != str[i]) { // 检查当前字符是否已存在于结果数组中
uniqueChars[index++] = str[i]; // 如果不是,将它添加到结果数组
}
}
uniqueChars[index] = '\0'; // 结束字符串
return uniqueChars; // 返回新字符串
}
int main() {
char testStr[] = "abbcccdddd";
printf("Original string: %s\n", testStr);
char* result = removeDuplicates(testStr);
printf("String after removing duplicates: %s\n", result);
free(result); // 别忘了释放内存
return 0;
}
```
这个函数首先检查输入字符串长度,然后遍历每个字符,如果字符还未出现在结果数组中,就将其添加。最后返回一个新的字符串,其中包含了原字符串中去重后的字符。
阅读全文