C++第17周项目7——用程序玩文件(1)统计单词数

简介: 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565【项目7(必看但选做)- 用程序玩转文字】互联网时代,文字的处理显得比任何时候都重重要例如,想想搜索引擎在做什么工作。用们用惯了集成开发环境,例如VC++6.0,它帮我们处理源程序,实际上就是处理由代码行构成的字符串。本项目的几个问题作为引子,请同学们初步体会相关问

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565


【项目7(必看但选做)- 用程序玩转文字】互联网时代,文字的处理显得比任何时候都重重要例如,想想搜索引擎在做什么工作。用们用惯了集成开发环境,例如VC++6.0,它帮我们处理源程序,实际上就是处理由代码行构成的字符串。本项目的几个问题作为引子,请同学们初步体会相关问题的处理办法。请不要因为一时做不出而焦急,可以在寒假完成,但体验,必须进行下去。

  1、读入文本文件,统计其中出现的单词数目。
  提示:请将统计一行中有多少单词用一个函数实现(见项目2之④的int wordnum(char str[])函数),以使程序结构更加清晰。


参考解答:

//本程序统计文件中的单词数
#include <iostream>
#include <fstream>
int wordnum(char str[]);
using namespace std;
int main() 
{
	ifstream sourceFile;
	char ch[100];
	int num_word=0;
	sourceFile.open("a.txt", ios::in);
	if(!sourceFile)       //测试是否成功打开  
    {  
        cerr<<"input file open error!"<<endl;  
        exit(1);  
    }  
	
	while (!sourceFile.eof())   //一篇文章由多行构成
	{	
		//通过循环读取多行,累加每一行的单词数
		sourceFile.getline(ch,100,'\n');   
		num_word+=wordnum(ch); 
	}
	sourceFile.close();
	cout << "文件中共有" <<num_word<<"个单词。"<<endl;
	return 0;
}

int wordnum(char str[])
{
 int i,num=0,word=0;  
 for(i=0;(str[i]!='\0');i++)  
 {
    if (str[i]==' ')
		word=0;  //word为0代表当前不构成一个词(遇到空格当然不是词了)
    else 
		if (word==0) //此处word为0,说明前面读到的是空格,而现在读到的又不是空格,新词开始
		{
			word=1;
			num++;    //新词,故计数
		}  //这儿不必else了,如果要,无非就是令word=1,因为读第一个非空格时已经是1了,不必要再赋值
 }
 return num;
}


目录
相关文章
|
1天前
|
数据采集 数据安全/隐私保护 C++
通过C++和libcurl下载网易云音乐音频文件的5个简单步骤
本文将介绍如何通过C和libcurl库下载网易云音乐的音频文件。我们将通过5个简单步骤完成这个任务,同时会使用爬虫代理IP技术来绕过这些网络限制,确保下载的顺利进行。为此,我们将参考爬虫代理的域名、端口、用户名和密码进行设置。网易云音乐作为一个不断发展的音乐平台,其丰富的资源和智能化服务将持续吸引大量用户,而掌握如上所述的下载技巧也将助力开发者更好地利用这些资源。
通过C++和libcurl下载网易云音乐音频文件的5个简单步骤
|
1天前
|
存储 C++ UED
【C++】飞机大战项目记录
通过上面的设计,我们实现来看飞机大战的主要功能
25 4
|
1天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
16 0
【C++】string学习 — 手搓string类项目
|
1天前
|
C++ 数据格式
【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]
【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]
【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]
|
1天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
15 1
|
1天前
|
C++
C++入门项目——通讯管理系统
C++入门项目——通讯管理系统
|
1天前
|
设计模式 存储 算法
C++从入门到精通:3.7阅读和理解开源项目——在实际项目中应用C++编程技巧和规范
C++从入门到精通:3.7阅读和理解开源项目——在实际项目中应用C++编程技巧和规范
|
1天前
|
安全 编译器 C++
C++从入门到精通:3.2异常处理——掌握C++的异常处理机制,提高程序健壮性
C++从入门到精通:3.2异常处理——掌握C++的异常处理机制,提高程序健壮性
|
1天前
|
存储 IDE 编译器
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
|
1天前
|
设计模式 安全 算法
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
17 0