• C语言字母频率统计


    在进行密码破解时有时候需要得到字母出现的频率信息,下面我将简单的使用C语言来读取一个文件,然后统计该文件内的字母出现的频率。

    1、在D盘下新建一个文本文件(文件名为"A.txt"),然后在该文件里面保存一些字母。

     

    2、编译并运行程序

    C语言源代码:

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 
     5 //统计字母的个数 
     6 void CountLetter(FILE *fp, int data[])
     7 {
     8     char ch=fgetc(fp); // 读取文件的第一个字符 
     9     while(ch!=EOF) // 当读取到的不是文件结束符EOF则继续读取下一个 
    10     {
    11         if(ch>='A' && ch<='Z') // 大写字母转小写 
    12             ch+=32;
    13         if(ch>='a' && ch<='z') // 统计字母个数 
    14             data[ch-'a']++; // 当前字母个数加一 
    15         ch=fgetc(fp); // 读取文件的下一个字符 
    16     }
    17 }
    18 
    19 //打印统计字母的结果到屏幕上 
    20 void PrintCount(int data[])
    21 {
    22     int i=26;
    23     int sum = 0; // 字母总的个数 
    24     
    25     while(i--)
    26     {
    27         sum+=data[i]; // 计算字母的总个数 
    28     }
    29     printf("统计字母频率结果(共%d个字母):
    ",sum);
    30     for(i=0; i<26; i++)
    31     {
    32         printf("%c=%.2f%%   	",'a'+i,data[i]*1.0/sum * 100); // 输出字母的频率 
    33         if( (i+1)%4 == 0 ) // 每输出4个后换一行 
    34             printf("
    "); // 换行 
    35     }
    36 }
    37 
    38 
    39 int main()
    40 {
    41     FILE *fp; // 文件指针
    42     int data[26] = {0}; // 字母统计数组 
    43 
    44     fp=fopen("D:\A.txt","r"); // 以只读的方式打开文件,如果D盘下没有文件"A.txt"则会打开失败 
    45     if(fp==NULL) // 判断文件是否打开成功 
    46     {   
    47         printf("无法打开文件!
    ");
    48         exit(1); // 退出程序  需要头文件<stdlib.h> 
    49     }
    50     
    51     CountLetter(fp, data); //统计字母的个数 
    52     PrintCount(data); // 打印统计结果
    53 
    54     fclose(fp); // 关闭数据文件 
    55     return 0;
    56 }

    注意:在C语言中,我们要输出一个%,则要输两个% (即%%)

  • 相关阅读:
    search(13)- elastic4s-histograms:聚合直方图
    search(12)- elastic4s-聚合=桶+度量
    search(11)- elastic4s-模糊查询
    search(10)- elastic4s-multi_match:多字段全文搜索
    search(9)- elastic4s logback-appender
    search(8)- elastic4s-search-query模式
    search(7)- elastic4s-search-filter模式
    search(6)- elastic4s-CRUD
    search(5)- elastic4s-构建索引
    权限功能之(二)
  • 原文地址:https://www.cnblogs.com/wuqianling/p/5362978.html
Copyright © 2020-2023  润新知