Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229

Подсчет встречаемости букв и цифр

07.11.2020, 15:10. Показов 3677. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Просьба разобрать каждую строчку кода(пояснить через комментарий //):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <string>
#include <fstream>
#include <map>
 
using namespace std;
struct chcp1251 {
    static bool is_alpha(char ch) {
        return (ch >= -64 && ch <= -1)
            || ch == -88
            || ch == -72
            || (ch >= 65 && ch <= 97)
            || (ch >= 90 && ch <= 122);
    }
    static bool is_digit(char ch) {
        return ch >= 48 && ch <= 57;
    }
};
int main() {
 
    system("chcp 1251 > nul");
    map<char, size_t> letters;
    map<char, size_t> digits;
 
    ifstream file("text.txt");
    if (file.is_open()) {
        char ch;
        while (ch = file.get()) {
            if (file.eof()) break;
            if (chcp1251::is_alpha(ch)) ++digits[ch];
            if (chcp1251::is_digit(ch)) ++letters[ch];
        }
        file.close();
    }
 
    else puts("Файл text.txt не найден!");
    cout << "Введенные числа:" << endl;
    for (auto [key, value] : letters) cout << key << " - " << value << '\n';
    wcout.put(L'\n');
    cout << "Введенные буквы:" << endl;
    for (auto [key, value] : digits) wcout << key << " - " << value << '\n';
    system("pause > nul");
Задача(вдруг кому будет удобней по ней объяснять):
Проанализировать файл с текстом. Определить частоту повторяемости каждой буквы алфавита и каждой цифры в тексте.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2020, 15:10
Ответы с готовыми решениями:

Подсчет цифр и букв
Народ, есть такая проблема! Мне нужно написать прогу, которая считывает текст из файла и определяет чего больше: цифр или букв. Я сделал...

Подсчет частоты встречаемости слов
Разработайте программу, выполняющую подсчет частоты встречаемости слов, поступающих со стандартного потока вывода и выводящую слова их...

подсчет букв (цифр) в тексте на СИ++ Builder
ничего не нашел в интернете по данной теме. Задание такое: Поместить на форму компоненты &lt;RadioGroup&gt; и два &lt;RadioButton&gt;...

32
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,751
11.11.2020, 06:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от K1MeR Посмотреть сообщение
посмотрел,но ошибки не вижу
подсказка 90 и 97
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.11.2020, 09:43
K1MeR, какое условие должно быть записано для кодов больших латинских букв ?
0
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229
11.11.2020, 14:47  [ТС]
Yetty, Задача:
Проанализировать файл с текстом. Определить частоту повторяемости каждой буквы алфавита и каждой цифры в тексте.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.11.2020, 15:44
K1MeR, ещё раз. посмотрите на таблицу ASCII и ответьте на вопрос:
Цитата Сообщение от Yetty Посмотреть сообщение
какое условие должно быть записано для кодов больших латинских букв ?
Добавлено через 4 минуты
или может так вопрос будет понятнее:

в каком диапазоне находятся коды латинских букв (от какого числа до какого числа) ?
1
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229
11.11.2020, 16:06  [ТС]
Yetty, 65-90 - большие
97-122 - маленькие
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.11.2020, 16:40
Цитата Сообщение от K1MeR Посмотреть сообщение
65-90 - большие
97-122 - маленькие
отлично теперь посмотрите на строки 12,13 и ответьте на вопрос: какие символы не являющиеся буквами программа подсчитает как буквы ?

затем исправьте ошибки в строках 12,13
0
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229
12.11.2020, 14:09  [ТС]
Yetty,
C++
1
2
|| (ch >= 65 && ch <= 90)
|| (ch >= 97 && ch <= 122);
верно?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.11.2020, 14:32
Цитата Сообщение от K1MeR Посмотреть сообщение
верно?
да

Добавлено через 5 минут
чтобы не искать коды символов в таблице ASCII как вариант можно записывать так:
C++
1
2
|| (ch >= 'a' && ch <= 'z')
|| (ch >= 'A' && ch <= 'Z');
в строке 16:
C++
1
ch >= '0' && ch <= '9';
но таблицу сохраните
0
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229
12.11.2020, 15:28  [ТС]
Yetty, спасибо большое!Помогли разобраться.А еще есть ошибки в коде?

Добавлено через 2 минуты
Yetty, а что обозначает этот кусочек?
C++
1
2
3
return (ch >= -64 && ch <= -1)
            || ch == -88
            || ch == -72
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.11.2020, 15:32
Цитата Сообщение от K1MeR Посмотреть сообщение
что обозначает этот кусочек?
разве сложно догадаться ?
0
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229
14.11.2020, 11:54  [ТС]
Yetty, просто понять не могу как не пытаюсь зачем он нужен
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.11.2020, 12:11
Цитата Сообщение от K1MeR Посмотреть сообщение
просто понять не могу как не пытаюсь
если функция распознаёт буквы, а латинские учитаны в строках 12-13 что же написано в строках повыше ?
0
1 / 1 / 0
Регистрация: 29.02.2020
Сообщений: 229
15.11.2020, 13:44  [ТС]
Yetty, ну 48-57 это цифры,а что со знаком "-" не могу понять.может это исключения какие-нибудь со знаком "-"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2020, 13:44

Подсчет количества цифр, букв в textbox-ах
Даны 3 texbox. В 1 водятся цифры во втором буквы в 3 их общее количества без пробела.Как это сделать уже сижу который час помогите кто...

Подсчет цифр, заглавных и строчных русских букв, заглавных и строчных английских букв, пробелов и спец символов
Ситуация такая, что строчные русские буквы код считает как большие и добавляет еще счетчик спец символов. В файле написал просто одну...

Подсчет встречаемости слова и его синонимов из файла
Имеется файл такой структуры:

Дан текст. Замена латинских букв на "!", замена гласных русских букв на "-", подсчёт цифр в тексте
Условие. Написать программу на языке Паскаль (можно и в среде Delphi 7.0), реализующую решение задачи с использованием структурированного...

Queue: подсчет и печать на экран частоты встречаемости элементов объекта
Здравствуйте! Прошу сделайте задачу, и если можете с пояснениями шагов, очень прошу Создайте функцию, принимающую в качестве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru