C/C++ Ready | Программирование
11.7K subscribers
695 photos
41 videos
333 links
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
👋🏼 Приветствую в C/C++ Ready!

C/C++ — одни из самых мощных и широко используемых языков программирования, которые обеспечивают высокую производительность и полный контроль над системой.

Это авторский ✈️ канал, который поможет при изучении этих двух языков. Тут будет выходить контент по разным его технологиям, разные гайды, шпаргалки, разборы задач, а также ресурсы, книги и т.д.

👩‍💻 Всё что я буду публиковать у себя в канале, вы сможете почитать ниже.

Navigation: ✉️
#гайд — объяснение одной конкретной темы, с картинками и примерами кода.
#метод — рассматриваем 2 похожих метода.
#курс — ссылки на 🖤 видео для обучения.
#статья — статья на определенную тему.
#ресурс — полезный сайт либо игра для изучения C++.
#шпора — разбираем разные полезные методы отдельных тем.
#практика — разбираем практические задачи авторским текстом.
#консоль — что же выведет консоль? Интерактивный опрос с кодом.
#задача — разбор создания интересной задачи (похоже на гайд)
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥22👍95😁1
👩‍💻 Разбираем, как сгруппировать слова по анаграммам с помощью стандартных средств C++.

Анаграммы — это слова, состоящие из одинаковых букв, но в разном порядке (eat, tea, ate).

Идея проста: сортируем буквы в каждом слове и используем отсортированную версию как ключ для группировки.

Основные шаги:
Подключаем заголовки и задаём данные
Сортируем каждое слово и сохраняем в map
Выводим сгруппированные анаграммы


🔥 — если узнал что-то новое
🤝 — если уже использовал


📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍8🤝8
👩‍💻 Разбираем алгоритм поиска количества подмассивов с заданной суммой — мощный приём для работы с массивами!

Вместо полного перебора — используем префиксные суммы и хеш-таблицу. Алгоритм работает за O(n), а значит — легко справится даже с большими входными данными.

Ключевые моменты:
Префиксные суммы
unordered_map для хранения уже встреченных сумм
Формула: sum - target — она же сигнал, что подмассив найден


🔥 — если узнал новое
🤝 — если уже с этим знаком


📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37🤝11👍10
👩‍💻 Простая и удобная проверка email-адрес — отличный пример, как регулярные выражения могут заменить громоздкую логику.

В этом решении мы проверяем, соответствует ли строка формату email, буквально в одну строку. Вместо множества условий — читаемое и компактное решение с std::regex.

Ключевые моменты:

Валидация через regex_match — лаконично и без лишних условий.

boolalpha делает вывод понятным: не 1/0, а true/false.

Подходит для быстрой проверки формата в любых проектах.


🔥 — если постараешься сделать
🤝 — если уже пробовал


📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥46👍8🤝53
👩‍💻 Парсинг CSV-таблицы — простой способ превратить строки в структуру данных!

В этой задаче мы разбираем строки CSV как мини-таблицу — каждая строка превращается в вектор значений. Всё это делается с помощью stringstream и getline — удобно и без лишнего кода.

Ключевые моменты:
Используем getline для чтения по запятой.

Каждую строку разбиваем на ячейки, получаем вектор строк.

Собираем таблицу из таких строк vector<vector<string>>.


🔥 — если попробуешь реализовать
🤝 — если уже парсил CSV


📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39🤝1510👍5
👩‍💻 Разбираем алгоритм группировки строк по первой букве!

Вместо сложных структур — просто используем unordered_map и преобразование в нижний регистр. Такой подход не только компактен, но и хорошо масштабируется.

Ключевые моменты:
Безопасное приведение к нижнему регистру (tolower)

Группировка строк через unordered_map<char, vector<string>>

Перебор по входному вектору и добавление в нужную группу


🔥 — если узнал что-то новое
🤝 — если уже пользовался


📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍87🤝6
👩‍💻 Рассмотрим подсчёт размера каталога

Разберёмся, как получить суммарный объём всех файлов в папке, применив стандартную библиотеку <filesystem>. Пользователь вводит путь в консоль — быстро и ясно!

Ключевые моменты:

При каждом посещении обычного файла добавляем его размер к общему счётчику (entry.file_size()).

Путь к каталогу спрашиваем у пользователя, валидируем и передаём функции.

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


Приём пригодится и тем, кто уже работал с <filesystem>, и тем, кто только открывает для себя его удобные API.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤝134
👩‍💻 Находим дубликаты файлов! (duplicate finder)

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

В этой
задаче:
Рекурсивно обходим дерево директорий.

Считаем для каждого файла контрольную сумму CRC32, читая его побайтно.

Выводим лишь те группы, где обнаружено более одного совпадения.


Такой приём часто используют для поиска лишних копий фотографий и документов, оптимизации дискового пространства и контроля резервных копий.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥135👍5
👩‍💻 Сжимаем и восстанавливаем строки с помощью RLE (Run-Length Encoding)

Сегодня реализуем алгоритм сжатия строк с помощью RLE (Run-Length Encoding), а также восстановление строки из сжатого представления.

В этой
задаче:
Считаем длину последовательностей одинаковых символов и сразу добавляем в результат

При распаковке парсим число и столько раз добавляем следующий символ.

Проверяем корректность: сжимаем → распаковываем → сравниваем строки.


Такой приём особенно полезен для логов, графики и повторяющихся данных, где он экономит место.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥14🤝9👍4
👩‍💻 CLI‑конвертер единиц (unit converter)

В этой задаче создаём консольную утилиту, которая переводит числовое значение из одной единицы измерения в другую прямо из терминала.

В этой
задаче:
Принимаем на вход 3 аргумента — число, исходную единицу и целевую единицу.

Проверяем, что обе единицы входят в список поддерживаемых (m, cm, km, g, kg, l, ml).

Используем unordered_map с коэффициентами и сначала переводим значение в базовую единицу, затем — в нужную.


Такой инструмент удобен, когда нужно быстро пересчитать метры в сантиметры, граммы в килограммы или литры в миллилитры, не покидая командную строку.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍76🤝1
👩‍💻 CLI‑генератор случайных паролей с гибкой спецификацией!

Консольная утилита, которая генерирует пароль заданной длины из выбранных групп символов прямо из терминала.

В этой задаче:
Принимаем на вход строку вида <длина><группы>, например 12abd.

Настраиваем генерацию случайных чисел для равномерного выбора символов из набора.

Постепенно формируем строку нужной длины, выбирая случайные символы из набора, и выводим результат.


Такой инструмент удобен, когда нужно быстро получить надёжный пароль с нужными характеристиками прямо из командной строки.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍198🔥8🤝1
👩‍💻 Пишем экстрактор домена из URL и нормализация регистра!

Лёгкая функция на C++, которая проверяет строку на совпадение с простым URL‑форматом, извлекает доменное имя и приводит его к нижнему регистру.

В этой
задаче:
Базовая валидация: убеждаемся, что в строке есть хотя бы одна точка и нет пробелов.

Определение начала: ищем «://» — если протокол указан, начинаем сразу после него, иначе с начала строки.

Извлечение домена: обрезаем строку по первому слэшу после начала (или до конца).


Это позволяет надёжно получить доменное имя из самых разных URL‑строк и сразу сообщить об ошибке при некорректном вводе.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥156👍6
👩‍💻 Превращаем текст в голос с помощью eSpeak NG!

Лёгкая программа на C++, которая с помощью библиотеки eSpeak NG позволяет быстро озвучить любую строку текста на выбранном языке.

В этой
задаче:
Подключаем библиотеку eSpeak NG и необходимые заголовки для работы с синтезом речи.

Инициализируем движок, выбираем подходящий голос и подготавливаем синтезатор.

Отправляем текст на озвучивание и дожидаемся завершения воспроизведения.


Такой подход позволяет просто добавить офлайн‑озвучку текста в любое приложение.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4514👍6
👩‍💻 Экранируем спецсимволы для JSON

Небольшая программа, которая преобразует строку так, чтобы она была безопасна для вставки в JSON-файл.

В этой
задаче:
Определяем специальные символы и управляющие коды

Последовательно обрабатываем каждый символ строки

Формируем итоговую строку, готовую для использования в JSON


Такой подход позволяет быстро и надёжно сделать строку валидной для JSON без лишних ошибок.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥127👍4🤝4
👩‍💻 Удобный и понятный HEX <-> RGB конвертер для работы с цветами!

Небольшая программа, которая переводит цвет из формата HEX в RGB и обратно, позволяя легко работать с цветами в разных представлениях.

В этой
задаче:
Преобразуем цветовой код в три числа — красный, зелёный и синий.

Из трёх чисел собираем цветовой код в нужном формате.

Добавляем проверку и исправление ввода, чтобы избежать ошибок.


Это делает решение простым и надёжным, а также удобным для повседневного использования.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍8🔥5
👩‍💻 Проверка целостности файла!

Небольшая утилита, которая считает SHA-256 контрольную сумму файла и по желанию сверяет её с эталонным значением.

Важно помнить:

Утилита вычисляет уникальную подпись для любого файла

Файл обрабатывается по частям, не загружая всю память

Можно автоматически проверить соответствие файла эталонному значению


Это позволяет эффективно обрабатывать файлы любого размера и автоматически проверять их целостность

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥86