词频统计
2016-03-16 14:02
239 查看
目标:
实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率。 附加要求:读入一段文本文件,统计该文本文件中单词的频率。
读入文本文件上次的作业也做了所以这个不是太困难不像上次一样找资料学习,将文本中的数据移入数组中,由h数组记录相同的个数,用strcmp比较,相同则+1.单词之间用空格,.相隔。
#include<iostream>
#include<fstream>
using namespace std;
void main()
{ int n;
char *a=new char
;
int num=1;//单词个数
ifstream in("D:\\1.txt");
if(!in)
{
cout<<"文件无法打开或不存在";
}
cin>>a
; //数据移入数组
char *p=a;
while(*p!='\0')
{
if(*p>='A'&&*p<='Z')
{
*p=*p-'A'+'a';
}
if(*p==' '||','||'.')
{
num++;
*p='\0';
}
p++;
}
int *h;
h[0]=1;
for(int i=1;i<num;i++)
h[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)//比较单词
{
h[j]++;
break;
}
else
z+=strlen(z)+1;
}
}
m=a;
for(i=0;i<num;i++)
{
if(h[i]&&*m!='\0')
cout<<m<<" 单词个数:"<<h[i]<<endl;
m+=strlen(m)+1;
}
}
实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率。 附加要求:读入一段文本文件,统计该文本文件中单词的频率。
读入文本文件上次的作业也做了所以这个不是太困难不像上次一样找资料学习,将文本中的数据移入数组中,由h数组记录相同的个数,用strcmp比较,相同则+1.单词之间用空格,.相隔。
#include<iostream>
#include<fstream>
using namespace std;
void main()
{ int n;
char *a=new char
;
int num=1;//单词个数
ifstream in("D:\\1.txt");
if(!in)
{
cout<<"文件无法打开或不存在";
}
cin>>a
; //数据移入数组
char *p=a;
while(*p!='\0')
{
if(*p>='A'&&*p<='Z')
{
*p=*p-'A'+'a';
}
if(*p==' '||','||'.')
{
num++;
*p='\0';
}
p++;
}
int *h;
h[0]=1;
for(int i=1;i<num;i++)
h[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)//比较单词
{
h[j]++;
break;
}
else
z+=strlen(z)+1;
}
}
m=a;
for(i=0;i<num;i++)
{
if(h[i]&&*m!='\0')
cout<<m<<" 单词个数:"<<h[i]<<endl;
m+=strlen(m)+1;
}
}
相关文章推荐
- Activity.runOnUiThread(Runnable)简单介绍
- .sh脚本语法
- jdbc
- Android Studio Svn一般忽略哪些文件和文件夹
- maven-pom文件详解
- SYN591-A型 计数器
- python学习5 常用三方模块
- 46. Permutations
- poj2823
- Checkstyle的配置详解
- switf 字符串转 json数据 ,json数据再转化为数组
- ANDROID 面试问题归纳
- Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory
- Android MotionEvent详解
- mysql数据类型
- Oracle角色管理
- C#委托与事件(生动故事)
- Linux内核分析 笔记四 系统调用的三个层次 ——by王玥
- C#高级编程 (第六版) 学习 第五章:数组
- java的引用和c++的指针有什么区别