Для каждого символа заданного текста указать, сколько раз встречается в тексте - C (СИ)

Узнай цену своей работы

Формулировка задачи:

обработка символьных данных: Для каждого символа заданного текста указать, сколько раз встречается в тексте. Сообщение об одном символе не должно встречаться больше, чем один раз. заранее благодарю!!!!!

Решение задачи: «Для каждого символа заданного текста указать, сколько раз встречается в тексте»

textual
Листинг программы
#include <string>
#include <map>
#include <algorithm>
#include <iostream>
#include <locale>
 
#include <boost/lambda/lambda.hpp>
using namespace boost::lambda;
 
int main()
{
    setlocale(LC_ALL, "");
 
    typedef std::map<std::string::value_type, size_t> Z;
    Z z;
 
    std::string text;
    std::getline(std::cin, text);
 
    std::for_each(text.begin(), text.end(), ++var(z)[_1]);
 
    for (Z::const_iterator it = z.begin(); it != z.end(); ++it)
        std::cout
            << "Символ '" << it->first
            <<"' встречается " << it->second << " раз." << std::endl;
 
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых заголовочных файлов для работы с текстом и map
  2. Установка локали на C
  3. Создание специализированного типа Z для хранения результатов подсчета
  4. Ввод текста из стандартного ввода
  5. Применение лямбда-функции (усиленной версии функции var) к каждому символу в тексте, используя std::for_each, и обновление значения в map для каждого уникального символа
  6. Вывод результатов на экран, используя цикл for и оператор std::cout
  7. Возврат 0 для успешного выполнения программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы