Назад к задачам
Junior — Senior
7

Переписывание функции экранирования символов

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Дана реализация функции mark_char, предназначенной для добавления символа обратного слеша перед каждым вхождением указанного символа в строке. Текущий вариант обхода строки реализован неверно, из‑за чего результат может быть некорректным. Необходимо исправить алгоритм так, чтобы он последовательно проходил по всем символам исходной строки и возвращал новую строку, где каждый найденный символ будет экранирован.

std::string mark_char(const std::string& src, char target) {
    if (src.empty()) {
        return "";
    }

    std::string out;
    for (char ch : src) {
        if (ch == target) {
            out += '\\';
        }
        out += ch;
    }

    return out;
}