diff --git a/src/DosAtk.cpp b/src/DosAtk.cpp index 5ff6357..1e9e7cf 100644 --- a/src/DosAtk.cpp +++ b/src/DosAtk.cpp @@ -201,9 +201,18 @@ void my_diag() // Принимает: const std::string& s - исходная строка для обработки // Возвращает: std::string - строка с экранированными спецсимволами std::string escape_json(const std::string& s) { + // Возвращаем строку с экранированными символами + + // ===== Объявления ===== std::string result; // Результирующая строка с экранированными символами + char c; // Символ в строке + + // ===== Инициализация ===== + result = ""; + c = ''; + // Проходим по каждому символу входной строки - for (char c : s) { + for (c : s) { // Обрабатываем специальные символы JSON switch (c) { case '"': result += "\\\""; break; // Экранирование двойных кавычек @@ -216,17 +225,24 @@ std::string escape_json(const std::string& s) { default: result += c; break; // Все остальные символы добавляем как есть } } + return result; // Возвращаем обработанную строку } bool is_numeric(const std::string& s) { // Проверка, является ли строка числом (включая отрицательные) + // ===== Объявления ===== size_t start; // Индекс, с которого начинать проверку цифр + size_t i; + + // ===== Инициализация ===== + start = 0; + i = 0; + if (s.empty()) return false; // Пустая строка не может быть числом // Проверяем наличие знака минус в начале - start = 0; if (s[0] == '-') { // Строка из одного минуса не является числом if (s.size() == 1) return false; @@ -234,16 +250,16 @@ bool is_numeric(const std::string& s) { start = 1; } // Проверяем все оставшиеся символы на цифры - for (size_t i = start; i < s.size(); ++i) { + for (i = start; i < s.size(); ++i) { // Найден нецифровой символ - строка не число if (!isdigit(s[i])) return false; } + // Все проверки пройдены - строка является числом return true; } void my_msg() { - printf("begin my_msg"); // debug // Объявление