如何用C语言写一个程序,删除重复的字符,不用库函数
时间: 2024-11-03 15:21:02 浏览: 3
C语言数字转化为字符串的库函数
5星 · 资源好评率100%
在C语言中,编写一个程序去删除字符串中的重复字符并打印结果,可以采用数组和循环的方式实现,因为C语言的标准库中并没有提供直接去除重复字符的功能。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 仅用于获取输入字符串长度,不需要字符串操作
#define MAX_CHAR 256 // 假设我们处理的是ASCII字符集,最多256个字符
// 自定义函数,用于检查字符是否已存在数组中
int is_char_in_array(char arr[], char c) {
for (int i = 0; i < strlen(arr); i++) {
if (arr[i] == c)
return 1;
}
return 0;
}
void remove_duplicates(char* str) {
int visited[MAX_CHAR] = {0}; // 初始化一个布尔数组存储字符是否出现过
int len = strlen(str);
for (int i = 0; i < len; i++) {
char c = str[i];
if (!visited[c]) {
printf("%c", c);
visited[c] = 1; // 标记当前字符已被访问
}
}
printf("\n");
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 从用户输入读取字符串,注意去掉末尾的换行符
input[strlen(input) - 1] = '\0'; // 去掉fgets添加的换行符
remove_duplicates(input);
return 0;
}
```
在这个程序中,`remove_duplicates` 函数遍历输入的字符串,如果字符未被访问过,就将其打印出来,并在`visited[]`数组中标记为已访问。这样就能避免重复字符。
阅读全文