c语言删除字符串中的重复字符,不用指针
时间: 2024-12-19 14:20:45 浏览: 14
在C语言中,如果你想要删除字符串中的重复字符但不想使用指针,可以利用数组和字符串的特性来实现。这里提供一个简单的示例,它会创建一个新的字符串,只包含原字符串中不重复的字符:
```c
#include <stdio.h>
#include <string.h>
void removeDuplicates(char str[], char result[]) {
int count[256] = {0}; // 初始化一个大小为ASCII码范围的计数数组
int j = 0; // 结果字符串的索引
for (int i = 0; str[i]; ++i) {
if (count[str[i]] == 0) {
result[j++] = str[i]; // 如果字符第一次出现,将其添加到结果字符串
count[str[i]]++; // 增加该字符的计数
}
}
result[j] = '\0'; // 结束字符串
}
int main() {
char input[] = "hello world!";
char result[strlen(input) + 1];
removeDuplicates(input, result);
printf("Original string without duplicates: %s\n", result);
return 0;
}
```
这个程序首先遍历输入字符串,统计每个字符出现的次数。然后,只有当遇到第一个出现的字符时,才将它添加到结果字符串中。注意,这种方法不会改变原始字符串,而是创建了一个新的字符串。
阅读全文