first commit

This commit is contained in:
dzruyk
2025-09-27 03:54:38 +03:00
commit 20c590f860
6 changed files with 241 additions and 0 deletions

35
str.h Normal file
View File

@@ -0,0 +1,35 @@
#pragma once
#include <stddef.h>
// 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);