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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
👩‍💻 Пишем экстрактор домена из 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👍5
📂 Напоминалка по дизайну REST API архитектуры!

Это архитектурный стиль, где ресурсы адресуются понятными URI, а операции над ними выполняются стандартными HTTP‑методами.

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

Сохрани, чтобы не забыть!

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥4
Разбираем безопасное побитовое преобразование типов!

Сейчас научимся преобразовывать данные одного типа в другой без неопределённого поведения — с помощью функции std::bit_cast.

Сначала подключим необходимые библиотеки из стандартной поставки:
#include <bit>      // std::bit_cast
#include <cstdint> // uint32_t
#include <iostream>
#include <iomanip> // std::hex, std::setw, std::setfill


Теперь создадим число с плавающей точкой и преобразуем его в uint32_t, чтобы увидеть его внутреннее битовое представление:
float value = 3.1415926f;
uint32_t raw = std::bit_cast<uint32_t>(value);

std::cout << "Биты числа: 0x"
<< std::hex << std::setw(8) << std::setfill('0') << raw << '\n';


Преобразуем обратно, чтобы убедиться, что значение не потеряно:
float restored = std::bit_cast<float>(raw);
std::cout << std::dec << "Восстановлено: " << restored << '\n';


Результат при запуске программы:
Биты числа: 0x40490fda  
Восстановлено: 3.14159


🔥 Таким образом ты можешь безопасно перепаковывать данные между типами одинакового размера — без UB, memcpy и хаков.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍8🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
😎 radioprog — бесплатный учебник по программированию, подходящий для тех, кто хочет систематизировать знания!

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

📌 Оставляю ссылочку: radioprog.ru

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥4
👩‍💻 Инициализация захватов в лямбдах, переносим ресурсы и создаём локальное состояние прямо внутри функций!

Инициализация захватов через [x = expr] позволяет перемещать объекты внутрь лямбд, хранить внутреннее состояние и выполнять вычисления в момент захвата.

Что важно знать:
[p = std::move(ptr)] — лямбда получает ресурс, указатель становится пустым.

• [data = heavyInit()] — захватываем результат функции или любое выражение.

• [id = 0]() mutable { return ++id; } — создаём локальный счётчик без глобальных переменных.


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

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

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

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥237👍5🤝5
👩‍💻 Превращаем текст в голос с помощью 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
🔥3812👍6