描述 对一组连续的字符串(只包含数字与字符)去除重复的字符,并输出去重后的字符串(字符之间的相对位置不能改变) 输入 从键盘输入一组字符串(只包含字母与数字)。 输出 去重后的字符串 只用stdio.h写一个C语言代码
时间: 2024-12-12 09:19:42 浏览: 10
在C语言中,我们可以使用数组和指针以及一些循环结构来实现这个功能。由于C标准库stdio.h主要用于文件操作,对于这种简单的字符串处理,建议使用更通用的头文件`string.h`。以下是使用`string.h`头文件的一个C语言函数示例,它会接收用户输入的字符串,并返回去重后的字符串:
```c
#include <stdio.h>
#include <string.h>
char* removeDuplicates(const char* input) {
int length = strlen(input);
if (length == 0) {
return ""; // 空字符串处理
}
// 创建一个新的字符串来存储去重后的结果
char result[length + 1]; // 加1为了容纳'\0'终止符
int resultIndex = 0;
for (int i = 0; i < length; ++i) {
if (result[resultIndex] != input[i]) { // 如果当前字符未出现在结果中
result[resultIndex++] = input[i]; // 将其添加到结果字符串
}
}
result[resultIndex] = '\0'; // 结束字符串
return result;
}
int main() {
char input[100];
printf("请输入一组字符串(只包含字母与数字): ");
fgets(input, sizeof(input), stdin); // 读取用户输入
input[strcspn(input, "\n")] = '\0'; // 清除fgets留下的换行符
char* uniqueString = removeDuplicates(input);
printf("去重后的字符串: %s\n", uniqueString);
free(uniqueString); // 释放内存,避免内存泄漏
return 0;
}
```
阅读全文