博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++Primer笔记——文本查询程序(原创,未使用类)
阅读量:6769 次
发布时间:2019-06-26

本文共 1169 字,大约阅读时间需要 3 分钟。

 

 

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 9 using namespace std;10 11 int main()12 {13 ifstream in;14 in.open("C:\\Users\\HP\\Desktop\\passage.txt");15 vector
row; //使用vector
来保存整个输入文件的一份拷贝,输入文件的每行保存为其中的每一个元素16 map
>word_and_row; //使用map将每个单词与它出现的行号set关联起来,使用set可以保证行号不会重复且升序保存17 string s;18 while (getline(in, s))19 {20 row.push_back(s);21 }22 for (size_t i = 0; i < row.size(); ++i)23 {24 string word;25 istringstream read(row[i]); //使用istringstream来将每行分解为单词26 while (read >> word)27 word_and_row[word].insert(i);28 }29 30 string s1; //s1为待查找的单词。注意:待查找的单词不能与句号或逗号连在一起!31 while (cin >> s1 && s1 != "q" ) //输入q时终止输入32 if (word_and_row.find(s1) != word_and_row.end())33 {34 int i = word_and_row[s1].size();35 cout << s1 << " occurs " << i << " times" << endl;36 for (auto d : word_and_row[s1])37 cout << "(line " << d + 1 << ") " << row[d] << endl;38 39 }40 else41 {42 cout << "This word can not be found in this passage! Please input a word again: " << endl; 43 }44 in.close();45 46 return 0;47 }

 

转载于:https://www.cnblogs.com/FengZeng666/p/9290082.html

你可能感兴趣的文章
行级级触发器变通成语句级触发器-变通处理
查看>>
Oracle技术_Oracle口令文件
查看>>
网络RIP学习
查看>>
MySQL基本操作总结
查看>>
Eclipse快捷键指南
查看>>
160824华为Mate7创建一键锁屏快捷方式
查看>>
公司内部系统的网络映射设置问题
查看>>
2010年05月15-16日在宁波实施小额外贸网站B2C、商品展示网站心得体会总结
查看>>
【MySQL优化】优化Linux读取性能,不使用atime属性
查看>>
windows注册表
查看>>
质点碰撞和卢瑟福公式
查看>>
web服务器性能概述
查看>>
flash调用js后,textbox中不能切换输入法的问题
查看>>
内存数据库Tokyo Cabinet在电子商务网站中的应用
查看>>
mysql数据库存储引擎(1)
查看>>
Linux中apache的配置
查看>>
网络的高可用性
查看>>
《Zabbix-ICMP ping监控添加方法》-7
查看>>
打印机常见问题与解决方法
查看>>
Django在根据models生成数据库表时报
查看>>