词频

题目: 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率。 附加要求:读入一段文本文件,统计该文本文件中单词的频率。

#include<iostream>

#include<fstream>

using namespace std;

void main()

{   int n;

    char *a=new char[n];   

    int num=1;

    ifstream in("D:\\zifuchuan.txt");

    if(!in)  

{  

 cout<<"文件无法打开";

 }

     cin>>a[n];  

     char *p=a;  

      while(*p!='\0')  

{       

     if(*p>='A'&&*p<='Z')    

{    

  *p=*p-'A'+'a';    

}   

  if(*p==' ')   

{  

     num++;  

   *p='\0';  

 }  

 p++;  

}  

int *b=(int*)malloc(num*sizeof(int));  

b[0]=1;   

   for(int i=1;i<num;i++)

     b[i]=0;     

char *m=a;     

for(i=0;i<num-1;i++)

  {       

m+=(strlen(m)+1);   

     char *z=a;   

  for(int j=0;j<num;j++)  

   {

     if(strcmp(m,z)==0)   

   {     

  b[j]++;    

   break;    

  }     

else      

z+=(strlen(z)+1); 

      }  

}  

m=a;

  for(i=0;i<num;i++)  

{   

if(b[i]&&*m!='\0')

cout<<m<<" 单词个数:"<<b[i]<<endl;   

m+=(strlen(m)+1);

  }  

free(b);

}

 

首先和上次一样读取TXT文件,然后将单词存储在指针中,与字符串中的单词比对,如果相等,则加1,从而达到计算出单词个数的目的。

 

你可能感兴趣的:(词频)