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
16typedef struct FindReturn
17{
18 bool found;
19 size_t index; //if found is false, this contains rubbish
20} FindReturn;
21
22String* new_string(void);
23char string_at(const String* string, size_t index);
24bool string_append(String* string, char item);
25void string_remove(String* string, size_t index);
26bool string_adjust_size(String* string, size_t size);
27FindReturn string_find_char(const String* haystack, const char needle);
28bool string_insert(String* string, size_t index, char character);
29bool string_concat(String* string, String* other);
30
31
32#endif //DYN_STRING_H
33