C 语言实现:去除字符串重复字符并按 ASCII 码排序,含输入处理和优化建议
以下是用 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. 排序算法的效率和稳定性,可根据实际情况选择更优的排序算法。 ######[AI写代码神器 | 433点数解答 | 2024-12-15 00:36:32]
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)28
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)499
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)483
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)426
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)446
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)96
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)130
- Python 实现:输入字符输出 ASCII 码及开发注意要点(字节豆包 | 151点数解答 | 2025-10-13 11:35:51)148
- C++实现奇数阶矩阵中间行特殊字符输出(DeepSeek | 261点数解答 | 2026-02-28 10:55:53)36
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- C++实现n×n图案输出:中间行'#'其余'*',开发需注意三点!(字节豆包 | 265点数解答 | 2026-01-16 19:06:25)67
- C++实现输出指定奇数阶中间行带#的矩形图案(字节豆包 | 267点数解答 | 2026-02-14 19:34:03)39