【问题标题】:Creating a frequency table for a text file with alphabets?为带有字母的文本文件创建频率表?
【发布时间】:2021-11-19 03:05:14
【问题描述】:

我正在寻找为具有重复字母的文本文件创建 C 数组频率表。因此,例如,如果我有一个名为“text.txt”的小文件,其内容为:“AAAABBBB\nCCCCEE”,我想将此文件解析为一个 256 字节的无符号 int 字节数组,其中该数组的索引将是源字母符号的整数值,我将如何去做?我不确定如何表示数组中的字母表以及它在同一数组中的频率。

【问题讨论】:

标签: arrays c


【解决方案1】:

我不确定如何在数组中表示字母表以及它在同一数组中的频率。

您不必在数组中表示字母表。您只需代表频率计数器本身。这是因为数组中频率计数器的位置隐含了字母表本身。例如,如果你这样定义数组

unsigned char counters[256] = {0};

那么你可以让counters['A']代表大写字母'A'的出现频率,counters['Z']代表大写字母'Z'的出现频率。假设你使用的是ASCII,那么counters['A']相当于写counters[65]counters['Z']相当于写counters[90]

然后您可以通过在循环中调用fgetc 逐个字符地遍历输入文件,并且对于遇到的每个字符,您都会增加相应的计数器。

请注意,如果您只为每个计数器分配一个unsigned char(单个字节),那么该计数器最多只能表示 256 个数字。因此,您可能需要考虑改用unsigned int

按照community guidelines on homework questions,我暂时不提供完整的代码解决方案。但是,如果需要,我可以稍后添加这样的解决方案。

【讨论】:

  • 啊,明白了,非常感谢您清除它!这实际上与家庭作业有关,是的,但我认为我不需要代码,我只是在努力解决问题本身及其基本方面,现在已经清除了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 1970-01-01
相关资源
最近更新 更多