导航:首页 > 文件管理 > 统计一个大文件单词如何计数

统计一个大文件单词如何计数

发布时间:2024-08-22 10:16:48

『壹』 用c语言编程,统计文件中出现的单词的次数

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
//定义存储单词和出现次数的结构体
typedef struct{
string word;
int num;
}count;
int main()
{
vector<count> v; //定义count类型的向量,动态存储count变量
count tempstr; //临时存储count变量
tempstr.num=0; //num初始化为0
ifstream in("english.txt"); //打开文件
string temp; //临时变量,存储文件的一行信息
string str; //临时变量,存储单个单词
int count=0; //记录单词字符个数
int j=0;

//按行读取文件,对每行信息截取单词并计数
while(getline(in,temp))
{
for(int i=0;i<temp.length ();i++)
{
if((temp[i]>='a'&&temp[i]<='z')||(temp[i]>='A'&&temp[i]<='Z'))
count++; //如果是英文字符,则计数加1
else if(count) //单词遇非英文字符时,计数终止,截取单词
{
str=temp.substr (i-count,count); //取子串(截取单词)
if(v.size ()) //若向量的长度不为0,则将单词与已有单词比较
{
for(j=0;j<v.size ();j++)
if(str.compare(v[j].word )==0)
{
v[j].num ++; //单词相同,则将相应单词的数目加1
count=0; //计数变量重新赋值为0,以便记录新的单词
break;
}
} //end if
if(j>=v.size ()) //单词第一次出现,将其添加至向量中
{
tempstr.word = str;
tempstr.num =1;
v.push_back (tempstr);
count = 0; //单词添加完毕,计数变量归0,记录新单词
} //end if
} //end elseif
} //end for
} //end while
//打印单词及出现次数
for(int i=0;i<v.size ();i++)
cout<<"the word is:"<<v[i].word<<", the times is:"<<v[i].num<<endl;
return 0;
}

『贰』 C语言小白求问。如何读取字符串文件,并根据不同长度的单词统计总共出现的频率

看你问题演示,是统计一段英文文字中,不同单词出现次数(但world明明只出现1次,你演示代码却输出的是2)。

如想统计一段文件中的英文单词出现次数。需实现以下功能:

一、遍历字符串,通过分割符号空格及标点符号获取单词数组。

二、大小写转换,把数组单词全部转换为大写或者小写(识别同一个单词不同大小写)。

三、遍历单词数组,累加统计每个单词数量。(可遍历到第一个单词作为当前统计对象,之后每遍历到相同单词,就将对应变量计数+1,并将该单词字符串置0)。

思路:可先用fopen打开文件流,之后用fgets把全文读出到字符串变量。

之后两个选择:

1、直接变量字符串,遇字母作为一个单词开始,遇非字母作为一个字母结束,这样把所有单词,拆出来放到字符串数组中。(大小写转换可同时进行)。

2、变量字符串将所有标点符号全部替换成空格,再用fprintf写入覆盖原文件,再用循环fscanf(返回-1表示读取结束),将所有以空格间隔的单词直接读取到字符串数组。

最后变量字符串数组。

『叁』 python 文件内容操作,如一个文件100万条数据,查询相同行数

使用open函数逐行读抄取文件,依次对比袭,如包含要求字符串,则数量累加1,读取完成后可统计出行数,代码如下:

n=0
forlineinopen('filename','r'):
if'固定字符串'inline:
n+=1

print(n)

说明:

使用 for line in open这种方式可以提高代码效率,如需要更复杂统计,例如重复行,则可以使用hash函数,把行hash值存入列表,再做统计。

『肆』 word文档如何对英文单词计数

推荐用软件Replace Pioneer,可以找出所有单词并可以按词频排序。

详细步骤:

首先需要把word文档保内存为txt文本文件,然后:容

1. 安装并打开Replace Pioneer, 选择Tools->Pattern Counter菜单
2. 在上面的Source选择 File/http,然后在右边输入(或选择)txt文本的路径。
3. 确定Counter Template选择的是Characters, Words, Lines(默认值)
4. 点中第3行Words,然后点击Detail,就可以按照出现次数列出所有词的频率。

不仅如此,你可以统计任何模式的出现频率,比如标点符号,单个字符,双字符组合,等等。

如果你会正则表达式,你甚至可以统计有多少个词是以s结尾的,多少个词是3个字母的,等等任意统计。

『伍』 文本文件单词的检索与计数C/C++代码

完全原创,已经编译运行确认:
创建一个a.txt 存放文本,
但是注意,由于时间较紧,所以对于标点符号的处理没有做。

#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>

#define N 100

struct a
{
char ch[20];
int m;
int flag;
};

void main()
{
struct a word[N]={NULL};

int k=0,j=0,i=0,count=1;
FILE *fp;
char c[20];

if((fp=fopen("a.txt","r"))!=NULL)
{
while(!(feof(fp)))
{
fscanf(fp,"%s",word[k].ch);
k++;
}

for(i=0;i<k;i++)
{
if(word[i].flag!=1)
{
word[i].flag=1;
word[i].m++;

for(j=i+1;j<k;j++)
{
if((strcmp(word[i].ch,word[j].ch)==0)&&(word[j].flag!=1))
{
word[i].m++;
word[j].flag=1;
}
}
}
}
}

printf("文本统计结果如下: \n");

for(i=0;(word[i].ch!=NULL)&&(i<N);i++)
{
if(word[i].m!=0)
{
printf("%3d. %s,出现了次数:%d次.\n",count,word[i].ch,word[i].m);
count++;
}

}

getch();
}

阅读全文

与统计一个大文件单词如何计数相关的资料

热点内容
iphoneqq传文件到电脑 浏览:901
中国网络电视怎么下载 浏览:777
读vba程序写结果 浏览:74
上海上门宽带升级 浏览:758
桌面文件夹选项在哪里 浏览:359
word的文件怎么设置不能更改内容 浏览:594
重要文件密码更换周期是多少 浏览:871
mac上用jsp写一个网页 浏览:6
word标准行间距 浏览:90
sw如何查看文件路径 浏览:329
jsp判断null 浏览:28
系统apk图标修改工具下载 浏览:703
jsp模型 浏览:431
承德货车运输哪个app好 浏览:907
华为5x书签文件夹路径 浏览:120
滑动t检验法程序 浏览:940
java百分数格式化 浏览:911
数据分析怎么看市场 浏览:993
魔兽联盟160升级攻略 浏览:234
iphone6plus直接购买 浏览:386

友情链接