C++从文件中提取英文单词的实现方法

目录
  • 思路:
  • 一:读取一行,去除该行标点符号
  • 二:截取单词
  • 三:将拿到的每一个单词都放在链表中

首先,要准备好words.txt(英文文章)置于工程目录下

思路:

1.打开文件

2.读取每一行

3.找到特殊的标点符号的位置,进行删除。

4.根据空格截取单词 find(" ");

5.将拿到的每一个单词放在链表中

一:读取一行,去除该行标点符号

#include<iostream>
using namespace std;
#include<fstream>
#include<string>
#include<list>
void test_word_split();

int main()
{
	test_word_split();
	return 0;
}

void test_word_split()
{
	fstream fs;
	char filename[20] = {0};
	cout<<"请输入打开的文件名:";
	cin>>filename;
	//打开文件
	fs.open(filename);
	cout<<"打开成功"<<filename<<endl;
	char buf[1024] = {0};
	fs.getline(buf,1024);//读取每一行
	cout<<buf<<endl;
	size_t pos;   //找到位置
	string line;  //接替buf职责
	line = buf;
	pos = line.find_first_of(",.;:'?!()/\"");  //找特殊的标点符号
	while(pos!=string::npos)
	{   //删除单个字符
		line.erase(pos,1);
		//再找下一个单个的字符
	   pos = line.find_first_of(",.;:'?!()/\"");
	}
	cout<<line.c_str()<<endl; //string 转char
}
 

二:截取单词

#include<iostream>
using namespace std;
#include<fstream>
#include<string>
#include<list>
void test_word_split();

int main()
{
	test_word_split();
	return 0;
}

void test_word_split()
{
	fstream fs;
	char filename[20] = {0};
	cout<<"请输入打开的文件名:";
	cin>>filename;
	//打开文件
	fs.open(filename);
	cout<<"打开成功"<<filename<<endl;
	char buf[1024] = {0};
	fs.getline(buf,1024);//读取每一行
	cout<<buf<<endl;
	size_t pos;
	string line,word;
	line = buf;
	pos = line.find_first_of(",.;:'?!()/\"");  //找特殊的标点符号
	while(pos!=string::npos)
	{   //删除单个字符
		line.erase(pos,1);   //从什么位置开始删除多长的字符
		//再找下一个单个的字符
	    pos = line.find_first_of(",.;:'?!()/\"");
	}
	cout<<line.c_str()<<endl; //string 转char
	//根据空格截取单词 find("")  111 222 333
	pos = line.find(" ");
	while(pos!=string::npos)
	{
		//截取单词
		word = line.substr(0,pos);//从0开始,一直截到空格所在位置
		cout<<word<<endl;
		//把第一个单词以及空格删除
		line.erase(0,pos+1);  //从什么位置开始删除多长的字符(如删111 )因此pos+1
		pos = line.find(" "); //寻找下一个空格
	}
}
 

三:将拿到的每一个单词都放在链表中

#include<iostream>
using namespace std;
#include<fstream>
#include<string>
#include<list>
void test_word_split();

int main()
{
	test_word_split();
	return 0;
}

void test_word_split()
{
	list<string> wordList;//链表
	fstream fs;
	char filename[20] = {0};
	cout<<"请输入打开的文件名:";
	cin>>filename;
	fs.open(filename);
	cout<<"打开成功"<<filename<<endl;
	char buf[1024] = {0};
	string line,word;  //初始化定义
	while(fs.getline(buf, 1024))//读取每一行
	{
		size_t pos;  //找到位置
		line = buf;  //接替buf职责
		pos = line.find_first_of(",.;:'?!()/\"");
		while(pos!=string::npos)//!=npos就找到
		{
			line.erase(pos,1);  //从什么位置开始删除多长字符
			pos = line.find_first_of(",.;:'?!()/\"");//寻找下一个标点符号
		}
		pos = line.find(" ");  //寻找空格所在位置
		while(pos!=string::npos)
		{
			word = line.substr(0,pos);//从0开始,一直截到空格所在位置
			wordList.push_back(word); //拿到的单词放在链表中
			//把第一个单词以及空格删除
			line.erase(0, pos+1);//从什么位置开始删除多长的字符(如删111 )因此pos+1
			pos = line.find(" ");//寻找下一个空格
		}
	}
	cout<<"验证一下"<<endl;
	list<string>::iterator it;
	for(it = wordList.begin();it!=wordList.end();it++)
	{
		cout<<(*it).c_str()<<endl;
	}
	cout<<"总的个数:"<<wordList.size();
	fs.close();
}

最后的结果:

到此这篇关于C++从文件中提取英文单词的实现方法的文章就介绍到这了,更多相关C++ 文件中提取英文单词内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++提取文件中信息的方法

    对于文件比较复杂的时候,为了获取文件中的信息,需要一些比较特殊的函数,比如,getline().replace().atoi,atof等 例子一,读取以下文件中的数据,并保存进一个类里面. 首先,类的定义如下,感觉是struct,但是按照struct的处理,我这段代码出错了,不知道什么问题,暂时po出来吧,有空看看. struct ImageLabel{ std::string imagePath;//save图片路径名 int faceBox[4];//输入点集的最外层包络矩形rect四个参数

  • C++提取文件名与提取XML文件的方法详解

    目录 1.提取文件名 2.提取XML文件 总结 1.提取文件名 查找容器内子序列的最后一次出现的位置 std::find_end(str.begin(), str.end(), pattern.begin(), pattern.end()) 查找容器内子序列的第一次出现的位置 std::search() find函数主要实现的是在容器内查找指定的元素,并且这个元素必须是基本数据类型的.查找成功返回一个指向指定元素的迭代器,查找失败返回end迭代器. std::find() 返回两个迭代器之间的距

  • C++从文件中提取英文单词的实现方法

    目录 思路: 一:读取一行,去除该行标点符号 二:截取单词 三:将拿到的每一个单词都放在链表中 首先,要准备好words.txt(英文文章)置于工程目录下 思路: 1.打开文件 2.读取每一行 3.找到特殊的标点符号的位置,进行删除. 4.根据空格截取单词 find(" "); 5.将拿到的每一个单词放在链表中 一:读取一行,去除该行标点符号 #include<iostream> using namespace std; #include<fstream> #i

  • webpack 从指定入口文件中提取公共文件的方法

    在不明白CommonsChunkPlugin的使用情况下,直接上手webpack4的splitChunks,实在是难上加难.为了能更好的理解splitChunks的使用,必须出个题目,练练手,才能从中有所收获(下面的题目不考虑实际应用场景): 从指定入口文件中提取公共文件 CommonsChunkPlugin的实现: entry: { index:'./src/index.js', index1:'./src/index1.js', index2:'./src/index2.js' }, plu

  • python实现从pdf文件中提取文本,并自动翻译的方法

    针对Python 3.5.2 测试 首先安装两个包: $ pip install googletrans $ pip install pdfminer3k googletrans会提供一个命令translate,这个命令会调用google translate api执行自动翻译: pdfminer3k会提供一个工具脚本pdf2txt.py: $ pdf2txt.py xxx.pdf 从stackoverflow搜索到可以去除页眉和页脚的命令(强烈推荐): 使用Ubuntu提供的pdftotext

  • 教你使用Python从文件中提取IP地址

    目录 算法 : 代码 输出 : 代码: 输出 : 补充:python提取一段字符串中的ip地址 总结 让我们看看如何使用 Python 从文件中提取 IP 地址. 算法 : 为正则表达式导入 re 模块. 使用 open() 函数打开文件. 读取文件中的所有行并将它们存储在列表中. 声明 IP 地址的模式.正则表达式模式是: r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' 对于列表中的每个元素,使用 search() 函数搜索模式,将 IP 地址存储在列表中. 显

  • Java实现从Html文本中提取纯文本的方法

    1.应用场景:从一份html文件中或从String(是html内容)中提取纯文本,去掉网页标签: 2.代码一:replaceAll搞定 //从html中提取纯文本 public static String StripHT(String strHtml) { String txtcontent = strHtml.replaceAll("</?[^>]+>", ""); //剔出<html>的标签 txtcontent = txtcont

  • Python查找文件中包含中文的行方法

    前言 近几天在做多语言版本的时候再次发现,区分各种语言真的是一件比较困难的事情,上一次做中文提取工具的就花了不少时间,这次决定用python试一试,结果写起来发现真是方便不少,自己整理了一下方便以后查找使用. 代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # find the line of containing chinese in files __author__ = 'AlbertS' import re def start_find_

  • Python实现从文件中加载数据的方法详解

    前几篇都是手动录入或随机函数产生的数据.实际有许多类型的文件,以及许多方法,用它们从文件中提取数据来图形化. 比如之前python基础(12)介绍打开文件的方式,可直接读取文件中的数据,扩大了我们的数据来源.下面,将展示几种方法. 我们将使用内置的 csv 模块加载CSV文件 CSV文件是一种特殊的文本文件,文件中的数据以逗号作为分隔符,很适合进行数据的解析.先用excle建立如下表格和数据,另存为csv格式文件,放到代码目录下. 包含在Python标准库中自带CSV 模块,我们只需要impor

  • Python快速从视频中提取视频帧的方法详解

    目录 1.抽取视频帧 2.多线程方法 3.整体代码 补充 Python快速提取视频帧(多线程) 今天介绍一种从视频中抽取视频帧的方法,由于单线程抽取视频帧速度较慢,因此这里我们增加了多线程的方法. 1.抽取视频帧 抽取视频帧主要使用了 Opencv 模块. 其中: camera = cv2.Videocapture( ) ,函数主要是通过调用笔记本内置摄像头读取视频帧: res, image = camera.read( ) 函数主要是按帧读取视频,返回值 “res” 是布尔型,成功读取返回 T

  • Python输出PowerPoint(ppt)文件中全部文字信息的方法

    本文实例讲述了Python输出PowerPoint(ppt)文件中全部文字信息的方法.分享给大家供大家参考.具体分析如下: 下面的代码依赖于windows com,所以必须在机器上安装PowerPoint才能用,可以将PPT文件中的所有纯文本信息进行输出到指定的文件,非常实用. import win32com from win32com.client import Dispatch, constants ppt = win32com.client.Dispatch('PowerPoint.App

  • Python3实现从文件中读取指定行的方法

    本文实例讲述了Python3实现从文件中读取指定行的方法.分享给大家供大家参考.具体实现方法如下: # Python的标准库linecache模块非常适合这个任务 import linecache the_line = linecache.getline('d:/FreakOut.cpp', 222) print (the_line) # linecache读取并缓存文件中所有的文本, # 若文件很大,而只读一行,则效率低下. # 可显示使用循环, 注意enumerate从0开始计数,而line

随机推荐