Files
lab0.1_letscontinue/str.h
2025-09-27 03:54:38 +03:00

36 lines
1.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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);