c语言:给你一个仅包含英文字母的字符串,请你编程对这个字符串进行去重,去重是对相同的字符去除,仅保留第一次出现的字符。 输入 输入一行字符串,仅包含英文字母,并且字符串的长度不超过 100 。 输出 输出去重后的字符串。
时间: 2024-12-25 07:29:00 浏览: 16
在 C 语言中,你可以通过遍历字符串并利用字符数组来实现字符串去重的功能。这里提供一种简单的思路:
```c
#include <stdio.h>
#include <string.h>
// 函数声明,用于处理字符串去重
void removeDuplicates(char* str);
int main() {
char input[101];
fgets(input, sizeof(input), stdin); // 读取用户输入的字符串
// 去除末尾的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
printf("去重后的字符串: ");
removeDuplicates(input);
printf("%s\n", input); // 输出结果
return 0;
}
// 去重函数
void removeDuplicates(char* str) {
int len = strlen(str);
for(int i = 0; i < len; i++) {
for(int j = i + 1; j < len; j++) { // 遍历从i+1开始的所有字符
if(str[i] == str[j]) { // 如果找到重复字符
for(int k = j; k > i; k--) { // 将后续的重复字符向右移动一位
str[k] = str[k - 1];
}
len--; // 缩短字符串长度
break;
}
}
}
}
```
这个程序会读取用户输入的字符串,然后调用 `removeDuplicates` 函数进行去重。注意,这个方法没有创建新的字符串,而是直接修改了原字符串,所以空间复杂度较低。去重结束后,会在控制台打印出去重后的字符串。
阅读全文