⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 单词频数统计.cpp

📁 输入一篇英文,程序将对里面每个单词的频率进行统计,从文件输入,而不是从键盘输入.
💻 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 + -