👋🏼 Приветствую в C/C++ Ready!
C/C++ — одни из самых мощных и широко используемых языков программирования, которые обеспечивают высокую производительность и полный контроль над системой.
Это авторский✈️ канал, который поможет при изучении этих двух языков. Тут будет выходить контент по разным его технологиям, разные гайды, шпаргалки, разборы задач, а также ресурсы, книги и т.д.
👩💻 Всё что я буду публиковать у себя в канале, вы сможете почитать ниже.
Navigation:✉️
#гайд — объяснение одной конкретной темы, с картинками и примерами кода.
#метод — рассматриваем 2 похожих метода.
#курс — ссылки на🖤 видео для обучения.
#статья — статья на определенную тему.
#ресурс — полезный сайт либо игра для изучения C++.
#шпора — разбираем разные полезные методы отдельных тем.
#практика — разбираем практические задачи авторским текстом.
#консоль — что же выведет консоль? Интерактивный опрос с кодом.
#задача — разбор создания интересной задачи (похоже на гайд)
C/C++ — одни из самых мощных и широко используемых языков программирования, которые обеспечивают высокую производительность и полный контроль над системой.
Это авторский
Navigation:
#гайд — объяснение одной конкретной темы, с картинками и примерами кода.
#метод — рассматриваем 2 похожих метода.
#курс — ссылки на
#статья — статья на определенную тему.
#ресурс — полезный сайт либо игра для изучения C++.
#шпора — разбираем разные полезные методы отдельных тем.
#практика — разбираем практические задачи авторским текстом.
#консоль — что же выведет консоль? Интерактивный опрос с кодом.
#задача — разбор создания интересной задачи (похоже на гайд)
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥22👍9❤5😁1
Анаграммы — это слова, состоящие из одинаковых букв, но в разном порядке (eat, tea, ate).
Идея проста: сортируем буквы в каждом слове и используем отсортированную версию как ключ для группировки.
Основные шаги:
• Подключаем заголовки и задаём данные
• Сортируем каждое слово и сохраняем в map
• Выводим сгруппированные анаграммы
🔥 — если узнал что-то новое
🤝 — если уже использовал
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 — она же сигнал, что подмассив найден
🔥 — если узнал новое
🤝 — если уже с этим знаком
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37🤝11👍10
В этом решении мы проверяем, соответствует ли строка формату email, буквально в одну строку. Вместо множества условий — читаемое и компактное решение с
std::regex
.Ключевые моменты:
• Валидация через regex_match — лаконично и без лишних условий.
• boolalpha делает вывод понятным: не 1/0, а true/false.
• Подходит для быстрой проверки формата в любых проектах.
🔥 — если постараешься сделать
🤝 — если уже пробовал
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥46👍8🤝5❤3
В этой задаче мы разбираем строки CSV как мини-таблицу — каждая строка превращается в вектор значений. Всё это делается с помощью
stringstream
и getline
— удобно и без лишнего кода.Ключевые моменты:
• Используем getline для чтения по запятой.
• Каждую строку разбиваем на ячейки, получаем вектор строк.
• Собираем таблицу из таких строк vector<vector<string>>.
🔥 — если попробуешь реализовать
🤝 — если уже парсил CSV
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39🤝15❤10👍5
Вместо сложных структур — просто используем unordered_map и преобразование в нижний регистр. Такой подход не только компактен, но и хорошо масштабируется.
Ключевые моменты:
• Безопасное приведение к нижнему регистру (tolower)
• Группировка строк через unordered_map<char, vector<string>>
• Перебор по входному вектору и добавление в нужную группу
🔥 — если узнал что-то новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍8❤7🤝6
Разберёмся, как получить суммарный объём всех файлов в папке, применив стандартную библиотеку <filesystem>. Пользователь вводит путь в консоль — быстро и ясно!
Ключевые моменты:
• При каждом посещении обычного файла добавляем его размер к общему счётчику (entry.file_size()).
• Путь к каталогу спрашиваем у пользователя, валидируем и передаём функции.
• Возможные исключения ловим, чтобы программа не падала на недоступных файлах.
Приём пригодится и тем, кто уже работал с <filesystem>, и тем, кто только открывает для себя его удобные API.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤝13❤4
Сегодня напишем небольшую консольную утилиту, которая отыщет все файлы-двойники в указанном каталоге.
В этой задаче:
• Рекурсивно обходим дерево директорий.
• Считаем для каждого файла контрольную сумму CRC32, читая его побайтно.
• Выводим лишь те группы, где обнаружено более одного совпадения.
Такой приём часто используют для поиска лишних копий фотографий и документов, оптимизации дискового пространства и контроля резервных копий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤5👍5
Сегодня реализуем алгоритм сжатия строк с помощью RLE (Run-Length Encoding), а также восстановление строки из сжатого представления.
В этой задаче:
• Считаем длину последовательностей одинаковых символов и сразу добавляем в результат
• При распаковке парсим число и столько раз добавляем следующий символ.
• Проверяем корректность: сжимаем → распаковываем → сравниваем строки.
Такой приём особенно полезен для логов, графики и повторяющихся данных, где он экономит место.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥14🤝9👍4
В этой задаче создаём консольную утилиту, которая переводит числовое значение из одной единицы измерения в другую прямо из терминала.
В этой задаче:
• Принимаем на вход 3 аргумента — число, исходную единицу и целевую единицу.
• Проверяем, что обе единицы входят в список поддерживаемых (m, cm, km, g, kg, l, ml).
• Используем unordered_map с коэффициентами и сначала переводим значение в базовую единицу, затем — в нужную.
Такой инструмент удобен, когда нужно быстро пересчитать метры в сантиметры, граммы в килограммы или литры в миллилитры, не покидая командную строку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍7❤6🤝1
Консольная утилита, которая генерирует пароль заданной длины из выбранных групп символов прямо из терминала.
В этой задаче:
• Принимаем на вход строку вида <длина><группы>, например 12abd.
• Настраиваем генерацию случайных чисел для равномерного выбора символов из набора.
• Постепенно формируем строку нужной длины, выбирая случайные символы из набора, и выводим результат.
Такой инструмент удобен, когда нужно быстро получить надёжный пароль с нужными характеристиками прямо из командной строки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤8🔥8🤝1
Лёгкая функция на C++, которая проверяет строку на совпадение с простым URL‑форматом, извлекает доменное имя и приводит его к нижнему регистру.
В этой задаче:
• Базовая валидация: убеждаемся, что в строке есть хотя бы одна точка и нет пробелов.
• Определение начала: ищем «://» — если протокол указан, начинаем сразу после него, иначе с начала строки.
• Извлечение домена: обрезаем строку по первому слэшу после начала (или до конца).
Это позволяет надёжно получить доменное имя из самых разных URL‑строк и сразу сообщить об ошибке при некорректном вводе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤6👍6
Лёгкая программа на C++, которая с помощью библиотеки
eSpeak NG
позволяет быстро озвучить любую строку текста на выбранном языке.В этой задаче:
• Подключаем библиотеку eSpeak NG и необходимые заголовки для работы с синтезом речи.
• Инициализируем движок, выбираем подходящий голос и подготавливаем синтезатор.
• Отправляем текст на озвучивание и дожидаемся завершения воспроизведения.
Такой подход позволяет просто добавить офлайн‑озвучку текста в любое приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥45❤14👍6
Небольшая программа, которая преобразует строку так, чтобы она была безопасна для вставки в JSON-файл.
В этой задаче:
• Определяем специальные символы и управляющие коды
• Последовательно обрабатываем каждый символ строки
• Формируем итоговую строку, готовую для использования в JSON
Такой подход позволяет быстро и надёжно сделать строку валидной для JSON без лишних ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤7👍4🤝4
Небольшая программа, которая переводит цвет из формата HEX в RGB и обратно, позволяя легко работать с цветами в разных представлениях.
В этой задаче:
• Преобразуем цветовой код в три числа — красный, зелёный и синий.
• Из трёх чисел собираем цветовой код в нужном формате.
• Добавляем проверку и исправление ввода, чтобы избежать ошибок.
Это делает решение простым и надёжным, а также удобным для повседневного использования.
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 контрольную сумму файла и по желанию сверяет её с эталонным значением.
Важно помнить:
• Утилита вычисляет уникальную подпись для любого файла
• Файл обрабатывается по частям, не загружая всю память
• Можно автоматически проверить соответствие файла эталонному значению
Это позволяет эффективно обрабатывать файлы любого размера и автоматически проверять их целостность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥8❤6