ГАВАЛЯН 515-і lab6_2

Run Settings
LanguageC
Language Version
Run Command
/* * @file lab6_2.cpp * @author Гавалян Д.Є, гр. 515i * @date 13 травня 2025 * @brief Лабораторна робота № 6, варiант 19 * * Рядки.Параметри командного рядка.Завдання 2 */ #include <stdio.h> #include <string.h> #include "module.h" #include <locale.h> int main() { setlocale(LC_ALL, ""); char str[256]; printf("Введiть рядок:"); fgets(str, sizeof(str), stdin); // зчитування рядка з пробілами // Видаляємо символ нового рядка \n, якщо він є size_t len = strlen(str); if (len > 0 && str[len - 1] == '\n') { str[len - 1] = '\0'; } // Виділяємо місце під %20 (припустимо, запас) char buffer[768]; // тричі більший буфер для замін strcpy(buffer, str); // копіюємо введений рядок int count = process_spaces(buffer); printf("Кiлькість замiн: %d\n", count); printf("Результат: %s\n", buffer); return 0; }
#include <string.h> #include "module.h" /** * Заміна всіх пробілів у рядку на символи %20 * * @param str — вхідний/вихідний рядок * @return кількість замінених пробілів */ int process_spaces(char* str) { int count = 0; int length = strlen(str); // Рахуємо кількість пробілів for (int i = 0; i < length; i++) { if (str[i] == ' ') count++; } if (count == 0) return 0; // Обчислюємо нову довжину int new_len = length + 2 * count; str[new_len] = '\0'; // Переписуємо з кінця for (int i = length - 1, j = new_len - 1; i >= 0; i--) { if (str[i] == ' ') { str[j--] = '0'; str[j--] = '2'; str[j--] = '%'; } else { str[j--] = str[i]; } } return count; }
#ifndef MODULE_H #define MODULE_H /** * Заміна пробілів у рядку на %20 * * @param str — вхідний рядок, у якому потрібно зробити заміни * @return кількість виконаних замін */ int process_spaces(char* str); #endif // MODULE_H
Editor Settings
Theme
Key bindings
Full width
Lines