c语言数组删除重复字符
时间: 2024-03-13 14:39:19 浏览: 92
以下是C语言数组删除重复字符的例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入字符串:");
gets(str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len;) {
if (str[i] == str[j]) {
for (int k = j; k < len; k++) {
str[k] = str[k + 1];
}
len--;
} else {
j++;
}
}
}
printf("删除重复字符后的字符串为:%s", str);
return 0;
}
```
相关问题
C语言数组删除相同的字符
在C语言中,直接删除数组中重复的元素并不是一个标准操作,因为数组一旦初始化,其长度通常是固定的。但是,你可以通过创建一个新的数组,遍历原数组并在新数组中插入唯一的字符来实现这个功能。这里是一个简单的示例,假设我们有一个字符数组`char str[]`:
```c
#include <stdio.h>
void removeDuplicates(char str[], char result[]) {
int j = 0; // 结果数组的索引
for(int i = 0; str[i] != '\0'; i++) {
if(result[j] == '\0' || str[i] != result[j]) { // 如果结果数组为空或者当前字符不同于结果数组最后一个字符
result[j+1] = str[i]; // 插入到结果数组
j++; // 更新结果数组索引
}
}
result[j] = '\0'; // 结束字符串
}
int main() {
char str[] = "hello world";
char result[strlen(str) + 1]; // 新数组大小稍大一点以防结果超出
removeDuplicates(str, result);
printf("去除重复后的字符串: %s\n", result);
return 0;
}
```
当你运行这段代码,它会打印出去重后的字符串。注意,这种方法保留了原始字符顺序。
c语言如何删除重复字符
在C语言中,删除字符串中的重复字符可以通过遍历字符串、使用字符数组和一个临时存储不重复字符的数组或集合(如哈希表)来实现。这里是一个简单的示例,使用字符数组来完成这个任务:
```c
#include <stdio.h>
#include <string.h>
// 声明一个字符数组来暂存不重复字符
#define SIZE 100 // 根据实际需要调整大小
char uniqueChars[SIZE];
void removeDuplicates(char* str) {
int currentIndex = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (uniqueChars[currentIndex] != str[i]) {
uniqueChars[currentIndex++] = str[i];
}
}
uniqueChars[currentIndex] = '\0'; // 添加终止符
str = '\0'; // 清空原字符串,然后将新字符串复制回去
strcpy(str, uniqueChars);
}
int main() {
char input[] = "hello world";
removeDuplicates(input);
printf("String without duplicates: %s\n", input);
return 0;
}
```
在这个示例中,`removeDuplicates` 函数遍历输入的字符串,如果遇到的字符不在 `uniqueChars` 中,就将其添加到数组的末尾。最后,将处理过的 `uniqueChars` 赋值回原始字符串。
阅读全文