计算文件中字符的频率.C++
Counting the frequency of characters in a file. C++
任务是使用频率表(不区分大写和小写字母)打印(给定的文本文件)遇到的拉丁字符到文件 f1。表格必须按字母顺序排序。到目前为止,我的程序只计算字母 A。我在创建遍历整个字母表并将表格打印到另一个文件中的循环时遇到问题,你能帮我吗?
#include <stdio.h>
const char FILE_NAME[] = "yo.txt";
#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
int count = 0; /* number of characters seen */
FILE *in_file; /* input file */
/* character or EOF flag from input */
int ch;
in_file = fopen(FILE_NAME, "r");
if (in_file == NULL) {
printf("Cannot open %sn", FILE_NAME);
system("Pause");
exit(8);
}
while (1) {
char cMyCharacter = 'A';
int value = (int)cMyCharacter;
ch = fgetc(in_file);
if (ch == EOF){
break;
}
int file_character = (int) ch;
if (file_character == value || file_character == value+ 32) {
count++;
}
}
printf("Number of characters in %s is %dn", FILE_NAME, count);
char cMyCharacter = 'A';
int iMyAsciiValue = (int)cMyCharacter;
cout << iMyAsciiValue;
system("Pause");
fclose(in_file);
return 1;
}
首先,获取一个大小为 26 的数组,频率为 a 到 z
int freq[26] = {0};
freq[0]
代表"a",freq[1]
代表"b"等。
二、改变
if (file_character == value || file_character == value+ 32)
自
if (file_character >= 'a' && file_character <= 'z')
对于所有小写字母(即"a"到"z")。
第三,获取索引并按计数方式
freq[file_character - 'a']++;
,file_character - 'a'
计算索引,其余的计算。
第四,打印freq
数组。
第五,添加
else if (file_character >= 'A' && file_character <= 'Z')
对于大写字符,并相应地更改后续代码。
这是你的功课,你应该尝试自己弄清楚整个程序。希望这个回答能给你足够的提示。
相关文章:
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 在指针的帮助下,文本文件中单词的频率
- 函数计算用户按下按钮的频率
- 在条件变量中触发错误信号的频率是多少
- 如何在 c++ 中循环中使用频率变化的声音?
- 查找给定范围内最长连续 1 的频率
- 字母 字母频率
- WM_PAINT消息频率:C#(.Net Framework 4.7.2 WinForms)与C++
- 创建一个函数,返回给定单词在C++中的频率
- 如何期望通过使用Google Test(Mock)以特定频率调用函数
- 跟踪多个文件中一系列字符的频率
- 用于检测特定频率的直接显示滤波器
- 这句话是什么意思?半 += 字符串(频率[i] / 2, i + 'a');
- 如何使用C++中的频率表计算模式
- 如何计算数字 x 的频率
- 除了使用 clock() 函数之外,有没有更好的方法来以给定的频率生成/发布数据
- 如何在 c++ 中使用 FFT 从 32 位浮点数组中提取频率
- 打印频率和重复的字符串
- 以 mp3 为单位的频率
- 查找每个数组元素的频率