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

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

07.11.2020, 15:10. Показов 3493. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru