“文学助手”终于完成

本文介绍了一个C++程序,用于统计一篇文章中指定单词的出现次数及其所在行号。首先,通过自定义的trim()函数处理输入的单词,去除多余的空格。然后,利用string类和自定义的word类来存储和统计单词。word类包含计数器和线性表,用于记录每个单词的统计信息。最后,程序从文件读取文章内容,逐行进行单词统计。
摘要由CSDN通过智能技术生成

虽然是数据结构上机题目,但是由于合作者写的string类功能不够,所以使用了自带的string类。所以跟数据结构其实没什么关系。
题目的要求是:给出一篇文章,统计文章中某些单词出现的次数以及分别出现在第几行。并且待统计的词汇要一次输入完毕。
上个礼拜验收的时候我看了旁边一组的程序,虽然当时老师让他们通过了,但是我觉得明显不符合题意。他们的程序只能统计一篇文章,并且是在读文本文件的过程中就逐行输出xxx字符串在第i行出现一次。并没有做到真正的统计。
这个题目对于我来说,难点在于字符串的输入以及文件的输入。因为C++i/o在大一的时候老师没怎么讲,都是自学的,所以也不是很理解。所以,即使是我现在把程序写出来了,但是它的算法也非常烂。
首先是待查单词输入问题。我使用空格作为分隔标记,先通过一次循环统计出待查单词有n个,然后声明长度为n的string类数组,再用substr函数将 待查单词记录到string数组中。但是我需要在输入的时候允许多余的空格(头尾和中间都可能会有过多的空格),于是自己写了个trim()函数直接在接 收输入的字符串中做手脚,去掉多余的空格,比如"    Google     China      the     " 转化成"Google China the"。然后才能把这3个词分别放在数组里面。
具体实现方法如下:

其中,trim()是这样写的:


下面是统计单词,统计单词的方法,按照提示,设一个word类,类的数据域有:一个int count,用于统计单词出现的次数,另一个是一个list类型对象,作为线性表记录单词在i行出现过。
统计的函数如下:

接下来,主函数中的统计步骤就比较简单了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值