酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ascii码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz 用c语言

以下是用 C 语言实现的代码: ```c #include <stdio.h> #include <string.h> // 去除字符串中的重复字符,并排序 void removeDuplicatesAndSort(char *str) { int len = strlen(str); int hash[256] = {0}; // 用于标记字符是否出现过 int newLen = 0; // 新字符串的长度 for (int i = 0; i < len; i++) { if (hash[str[i]] == 0) { // 如果字符未出现过 hash[str[i]] = 1; // 标记为已出现 str[newLen++] = str[i]; // 加入新字符串 } } str[newLen] = '\0'; // 结束新字符串 // 对新字符串进行排序 for (int i = 0; i < newLen - 1; i++) { for (int j = 0; j < newLen - i - 1; j++) { if (str[j] > str[j + 1]) { // 交换字符 char temp = str[j]; str[j] = str[j + 1]; str[j + 1] = temp; } } } } int main() { char str[80]; printf("请输入字符串:"); scanf("%s", str); removeDuplicatesAndSort(str); printf("处理后的字符串:%s\n", str); return 0; } ``` 额外需要注意的逻辑点: 1. 输入字符串的长度限制,要确保不超过 80 个字符。 2. 处理输入字符串时,要考虑可能包含的特殊字符。 3. 排序算法的效率和稳定性,可根据实际情况选择更优的排序算法。 [2024-12-15 00:36:32 | AI写代码神器 | 433点数解答]

相关提问