diff --git a/docs/CHANGELOG b/docs/CHANGELOG index 33753fc..c0b06ca 100644 --- a/docs/CHANGELOG +++ b/docs/CHANGELOG @@ -1,7 +1,11 @@ -27-04-2024 René Huiberts +27-04-2024 René Huiberts + + Added: simplified boyer–moore string-search algorithm + +27-04-2024 René Huiberts Added: ASCII string api -27-04-2024 René Huiberts +27-04-2024 René Huiberts Added: project layout diff --git a/src/main.c b/src/main.c index fb91a63..c18c367 100644 --- a/src/main.c +++ b/src/main.c @@ -1,17 +1,46 @@ #include "base.h" #include "arena.h" +#include "string.h" #include "win32_platform.h" #include "arena.c" +#include "string.c" #include "win32_platform.c" int main(void) { - Arena *arena = arena_initialize_default(); + String8 input = str8_lit("Hello world"); + String8 pattern = str8_lit("wor"); - /* lifetime of objects */ + if (pattern.length <= 0) + return -1; + + for (u64 index = pattern.length; index < input.length; index += 1) + { + u8* ptr_input = input.str + index - 1; + u8* ptr_pattern = pattern.str + pattern.length - 1; + + for (u64 jndex = 1; jndex != pattern.length; jndex += 1) + { + ptr_input -= 1; + ptr_pattern -= 1; + + u8 char_input = *ptr_input; + u8 char_pattern = *ptr_pattern; + + if (char_input == char_pattern) + { + if (jndex == pattern.length - 1) + printf("Pattern is found.\n"); + + continue; + } + + break; + } + + } - arena_release(arena); return 0; }