写一个c语言的代码程序,输入一个字符串,对字符串按照ASC码进行排序,并且删除重复的字符。
时间: 2024-10-06 17:01:51 浏览: 36
与ASCII码相关的C语言字符串操作函数
以下是一个简单的 C 语言程序,它接受用户输入的字符串,删除重复的字符并按 ASCII 码顺序排列:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void removeDuplicates(char* str);
void sortStringByASCII(char* str);
int main() {
char input[100];
// 输入字符串
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 注意这里不包括换行符
input[strcspn(input, "\n")] = '\0'; // 移除fgets获取到的换行符
// 删除重复的字符并保存在原数组中
removeDuplicates(input);
// 排序字符串
sortStringByASCII(input);
// 输出结果
printf("排序后的字符串 (无重复): %s\n", input);
return 0;
}
// 删除重复字符的函数
void removeDuplicates(char* str) {
int len = strlen(str);
for (int i = 0; i < len - 1; ) {
if (str[i] == str[i + 1]) {
while (i < len - 1 && str[i] == str[i + 1]) {
str[i] = '\0';
len--;
}
i++;
} else {
i++;
}
}
}
// 按ASCII码升序排列字符串的函数
void sortStringByASCII(char* str) {
int len = strlen(str);
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (str[j] > str[j + 1]) {
// 交换字符
char temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
}
```
阅读全文