#pragma once #include // Str это структура, которая хранит в памяти строки произвольной длинны // sz -- содержит текущий размер строки (0 если строка не инициализирована или нулевого размера) // Размер строки -- количество байт, занятое под символы (за исключением последнего нулевого байта) // capacity содержит размер динамически инициализированного массива ptr struct Str { int sz; int capacity; char *ptr; }; typedef struct Str str; // Инициализация пустой строки void str_init(str *s); // Инициализация строки с данными void str_init_data(str *s, const char *initial); // Деинициализируем строку (освобождаем память по указателю ptr) void str_deinit(str *s); // Функция должна вернуть указатель на ptr char *str_data(str *s); //Функция создаёт и возвращает новую строку, копию s str str_copy(str *s); //добавляет к строке строку suffix void str_append(str *s, char *suffix); //уменьшает размер строки до sz байт void str_shrink(str *s, int sz);