C语言单词检索统计系统 - 菜单模式实现
本系统旨在使用C语言实现单词检索和统计功能,并采用菜单模式进行操作,以提供用户友好的交互体验。
功能概述
系统包含以下主要功能:
- 输入文件并保存: 用户可以从键盘输入文件内容并将其保存到指定文件。
- 查找单词: 用户可以指定目标文件和要查找的单词,系统将输出该单词在文本中的行号、在该行中出现的次数以及位置信息。
实现步骤
- 设计菜单模式: 使用
while循环和switch语句实现菜单模式,允许用户选择不同的功能。
int main() {
int choice;
while(1) {
printf("========== Menu ==========
");
printf("1. 输入文件并保存
");
printf("2. 查找单词
");
printf("3. 退出程序
");
printf("==========================
");
printf("请输入您的选择:");
scanf("%d", &choice);
switch(choice) {
case 1:
// 输入文件并保存
break;
case 2:
// 查找单词
break;
case 3:
// 退出程序
break;
default:
printf("输入有误,请重新选择。
");
}
}
return 0;
}
- 输入文件并保存: 使用文件流
fopen、fputc和fclose函数实现文件读写操作。
case 1:
printf("请输入文件名:");
scanf("%s", filename);
fp = fopen(filename, "w");
if(fp == NULL) {
printf("文件打开失败!
");
break;
}
printf("请输入文件内容(以EOF结束):
");
while((ch = getchar()) != EOF) {
fputc(ch, fp);
}
fclose(fp);
printf("文件已保存。
");
break;
- 查找单词: 使用字符串库中的函数
strstr实现字符串匹配,并记录单词出现的位置和次数。
case 2:
printf("请输入要查找的文件名:");
scanf("%s", filename);
fp = fopen(filename, "r");
if(fp == NULL) {
printf("文件打开失败!
");
break;
}
printf("请输入要查找的单词:");
scanf("%s", word);
printf("查找结果如下:
");
line_num = 0;
while(fgets(line, MAX_LINE_LEN, fp) != NULL) {
line_num++;
pos = strstr(line, word);
if(pos != NULL) {
count = 0;
printf("第%d行,出现了%d次。
", line_num, count);
while(pos != NULL) {
count++;
printf("第%d次出现的位置:%d
", count, pos - line);
pos = strstr(pos + 1, word);
}
}
}
fclose(fp);
break;
注意事项
- 本系统仅提供基本实现思路,实际开发中还需要考虑错误处理、边界条件、内存管理等细节问题。
- 可以使用不同的数据结构和算法来优化系统性能,例如使用哈希表来加速单词查找。
- 可以使用图形界面库来设计更加美观的用户界面。
本系统旨在帮助用户理解C语言的基本概念和编程技巧,并提供一个简单的单词检索和统计工具。希望您能根据自己的需求进行扩展和改进。
原文地址: https://www.cveoy.top/t/topic/ne1V 著作权归作者所有。请勿转载和采集!