如何用C语言编写一个函数,接收用户通过键盘输入的字符串作为参数,然后移除其中所有重复的字符,以便得到一个新的无重复字符的字符串?例如,给定输入'helloworld',预期输出为'helowrd'。
时间: 2024-10-09 18:02:05 浏览: 24
C语言中字符串处理函数介绍
在C语言中,你可以创建一个函数来实现这个功能,首先你需要遍历输入的字符串,同时使用一个数组或哈希表来跟踪已经遇到过的字符。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define MAX_CHAR 256 // 假设ASCII字符集大小
bool visited[MAX_CHAR] = {0}; // 初始化所有字符未访问过
char removeDuplicates(char* input) {
int i = 0;
for (int j = 0; input[j]; ++j) {
if (!visited[input[j]]) { // 如果字符未访问过
input[i++] = input[j]; // 将其添加到结果并标记为已访问
visited[input[j]] = true;
}
}
input[i] = '\0'; // 结束字符串
return input; // 返回新的字符串
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin); // 读取用户输入
str[strcspn(str, "\n")] = '\0'; // 移除fgets留下的换行符
str = removeDuplicates(str);
printf("No duplicates: %s\n", str);
return 0;
}
```
当你运行此程序并输入'helloworld'时,它会打印出'helowrd'。
阅读全文