導航:首頁 > 文件管理 > 統計一個大文件單詞如何計數

統計一個大文件單詞如何計數

發布時間: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();
}

閱讀全文

與統計一個大文件單詞如何計數相關的資料

熱點內容
QQ域名防紅代碼 瀏覽:756
viahdwin10 瀏覽:448
360軟體小助手怎麼添加文件夾 瀏覽:401
電視內置網路有什麼好處 瀏覽:81
微信10分鍾下款口子 瀏覽:62
中國買賣書畫的網站有哪個 瀏覽:648
vb程序最小公倍數 瀏覽:747
迅雷雲盤下載的文件怎麼找不到 瀏覽:49
樹莓派做win10電視盒子 瀏覽:690
模仁編程是什麼意思 瀏覽:267
分數app 瀏覽:135
硬碟格式化文件系統 瀏覽:325
如果禁用分頁文件 瀏覽:80
公司級的路由器密碼設置 瀏覽:581
京東app的好物榜怎麼進 瀏覽:803
word打開臨時文件夾 瀏覽:686
如何復制選中的數據 瀏覽:96
ios打開本地文件 瀏覽:816
f站app去哪裡下載 瀏覽:573

友情鏈接