C 语言英文单词统计助手:功能实现、代码剖析与优化建议
以下是一个用 C 语言实现的英文单词统计助手的示例代码: ```c #include <stdio.h> #include <string.h> #include <ctype.h> #define MAX_LINE_LENGTH 1000 #define MAX_WORD_LENGTH 50 // 统计单词数量 int countWords(char text[]) { int wordCount = 0; int inWord = 0; for (int i = 0; text[i]!= '\0'; i++) { if (isalpha(text[i])) { if (!inWord) { wordCount++; inWord = 1; } } else { inWord = 0; } } return wordCount; } // 统计字符出现次数 void countCharacters(char text[], int charCount[]) { for (int i = 0; text[i]!= '\0'; i++) { if (isalpha(text[i])) { charCount[tolower(text[i]) - 'a']++; } } } // 交换函数用于排序 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } // 冒泡排序 void bubbleSort(int arr[], char letters[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] < arr[j + 1]) { swap(&arr[j], &arr[j + 1]); swap(&letters[j], &letters[j + 1]); } } } } int main() { char text[MAX_LINE_LENGTH]; printf("请输入英文短文:\n"); fgets(text, MAX_LINE_LENGTH, stdin); int wordCount = countWords(text); printf("单词总数:%d\n", wordCount); int charCount[26] = {0}; countCharacters(text, charCount); char letters[26]; for (int i = 0; i < 26; i++) { letters[i] = 'a' + i; } bubbleSort(charCount, letters, 26); printf("字符出现次数(降序):\n"); for (int i = 0; i < 26; i++) { if (charCount[i] > 0) { printf("%c: %d\n", letters[i], charCount[i]); } } return 0; } ``` 以下是三个可行的改进建议: 1. 增加对输入内容的合法性检查,例如检查输入是否全为英文字符。 2. 优化排序算法,例如使用快速排序替代冒泡排序提高效率。 3. 将各个功能模块封装成单独的函数,提高代码的可维护性和可读性。 ######[AI写代码神器 | 691点数解答 | 2024-12-26 15:39:43]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)356
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)347
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)387
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)333
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)333
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)280
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)294
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- C++实现计算字符矩阵中十字图形个数(字节豆包 | 333点数解答 | 2026-03-14 19:46:38)20
- C++实现矩阵中十字图形个数的计算(字节豆包 | 847点数解答 | 2026-03-14 20:19:15)20
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)313
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)464