Проанализировать файл с текстом. Определить частоту повторяемости каждой буквы алфавита и каждой цифры в тексте.
Написать код на C++.
#include <fstream>
#include <iostream>
using namespace std;
int main() {
int n[10] = { 0 }, e[26] = { 0 };
ifstream f("input.txt");
char c;
while (!f.eof() && f >> c)
if (c >= '0' && c <= '9')
++n[c - '0'];
else if (c >= 'a' && c <= 'z')
++e[c - 'a'];
else if (c >= 'A' && c <= 'Z')
++e[c - 'A'];
f.close();
for (int i = 0; i < 10; cout << i << ": " << n[i++] << '\t');
for (int i = 0; i < 26; cout << (char)('a' + i) << ": " << e[i++] << '\t');
system("pause");
return 0;
}
Помогите пожалуйста модернизировать код к курсовой
Это как?)
Это наверное так что, код в 13 строк для курсовой явно маловато…
КириллK1MeR, Вы хотя бы тему и поставленную задачу озвучте… Т. к. то что указано в первом посте больше на лабораторную работу похоже…
Ну это от вуза зависит что там как называют.
После модернизации стало еще короче
#include <cctype>
#include <fstream>
#include <iostream>
#include <map>
int main() {
std::map<char, int> charFrequencyMap;
std::ifstream fs("input.txt");
char ch;
while (fs.get(ch)) {
if (std::isalnum(ch)) {
charFrequencyMap[char(std::tolower(ch))]++;
}
}
for (const auto& it : charFrequencyMap) {
std::cout << it.first << " - " << it.second << std::endl;
}
return 0;
}
А, еще если найти просят частоту, а не количество, то скорее всего надо в конце разделить на количество всех букв+цифр.
Можете пожалуйста частоту сделать?
Так а проблема в чем?
Надо каждое число в конце
(либо просто при выводе, либо в map изменить, как угодно)
Для получения количества можно во время чтения файла считать подходящие символы (те, что в map добавляются).