c++ - 解释频率[toupper(new_letter) - 'A' ]++;

标签 c++ arrays

因此,我一直在寻找一种解决方案,以解决一个步骤涉及计算每个唯一字母出现频率的问题。我去的每个地方都有相同的数组增量器。我没有见过这个表格,也不完全理解它。我试图找到该格式的支持文档,但无法弄清楚它的实际作用。我可以让它工作;但是,我不确定每 block 代表什么。

Peice 我在理解这里括号内发生的事情时遇到了问题。

frequency[toupper(new_letter) - 'A']++;

其中频率是一个数组

示例来自:count number of times a character appears in an array?

算法:

  • 打开文件/阅读一封信。
  • 在字母数组中搜索新字母。
  • 如果新字母存在:增加频率槽 那封信:频率[toupper(new_letter) - 'A']++;如果新的 缺少字母,添加到数组并将频率设置为 1。
  • 处理完所有字母后,打印出频率数组:`

    cout << 'A' + index << ": "<< frequency[index] << endl;

任何有助于理解的帮助将不胜感激。

最佳答案

这只是一个数组。也许让您感到困惑的部分是 toupper(new_letter) - 'A'我们在这里做的是 - 我们将字母转换为大写,然后减去 'A' 的 ASCII 码来自结果的 ASCII 代码。因此,结果是 [0-25] 范围内的数字。 .之后将其添加到 'A'我们得到原始大写字符。至于算法的其余部分 - 这只是类似于 counting sort 的东西.

关于c++ - 解释频率[toupper(new_letter) - 'A' ]++;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15323656/

相关文章:

c++ - 二叉树运行时误差的后序迭代遍历

c++ - QSerialPort 手动 RTS 开/关未同步调用

arrays - nodejs WriteStream只写入一行

arrays - 如何从数组中获取第一个匹配项

c - 为什么我不能将字符串保存在 char 数组中?

javascript - 如何删除值并向 JavaScript 对象添加索引列?

c++ - C++ 中的类/函数顺序重要吗?

c++ - 神经网络在用于处理数据之前似乎工作正常(所有结果几乎相同)

C++ 运算符重载和访问私有(private)数据变量

java - 子类化数组