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