📄 单词频数统计.cpp
字号:
# include<stdio.h>
# include<string.h>
# include<stdlib.h>
# define M 1000
typedef struct
{
char data[20];
int sum;
}WORD;
WORD word[1000]; //用来存放单词,并统计单词的频数
char stack[1000]; //临时存放单词,并起统计作用
int top=0; //栈顶指针
int num=1;
int Init(void) //初始化单词数组
{
int i;
for(i=1;i<=M;i++)
word[i].sum=0;
return 0;
}
int check(char *p) //核查该单词有无出现过
{
int i;
for(i=1;i<=num;i++)
{
if(strcmp(word[i].data,p)==0)
break;
}
if(i<=num)
return i;
else
return -1;
}
int TongJi(void) //用来对单词进行统计
{
FILE *fp;
int i,flag;
char wd[1000];
if((fp=fopen("c:\\words.txt","rt"))==NULL)
{
printf("读取文件失败:\n");
exit(0);
}
while(!feof(fp))
{
do
{
fscanf(fp,"%c",&stack[top++]);
printf("%c",stack[top-1]);
}while(stack[top-1]!=' ');
if(stack[0]==' ') //开始读入的是空格
continue;
i=0;
while(top!=0)
{
wd[i]=stack[--top];
i++;
}
wd[i]=0;
flag=check(wd);
if(flag>=0)
word[num].sum++;
else
{
num++;
strcpy(word[num].data,wd);
word[num].sum++;
}
}
return 0;
}
int print(void) //单词频数统计结果
{
int i,j,k;
char ch[100];
for(i=1;i<=num;i++)
{
//printf("%10s",word[i].data);
for(j=strlen(word[i].data),k=0;j>=0;j--,k++)
ch[k]=word[i].data[j-1];
ch[k]=0;
printf("%20s",ch);
printf("%6d\n",word[i].sum);
}
return 0;
}
int main(void)
{
Init(); //初始化
TongJi(); //单词统计
print(); //统计结果输出
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -