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