dyn_string.h
Raw
1#ifndef DYN_STRING_H
2#define DYN_STRING_H
3#define STRING_DEFAULT_SIZE 8
4#include <stdint.h>
5#include <stdlib.h>
6#include <string.h>
7#include <stdbool.h>
8
9typedef struct String
10{
11 char* chars;
12 size_t capacity;
13 size_t length;
14} String;
15
16String* new_string(void);
17String* string_with_capacity(size_t capacity);
18void delete_string(String* string);
19
20char string_at(const String* string, size_t index);
21
22bool string_append(String* string, char character);
23bool string_insert(String* string, size_t index, char character);
24
25void string_remove(String* string, size_t index);
26
27bool string_adjust_size(String* string, size_t size);
28size_t* string_find_char(const String* haystack, const char needle);
29bool string_concat(String* string, const String* other);
30
31String* from_cstring(const char* cstring);
32char* to_cstring(const String* string);
33
34
35#endif //DYN_STRING_H
36