1
0
Fork 0

Added: simplified boyer–moore string-search algorithm

Browse Source
This commit is contained in:
rhuibertsjr 2024-04-27 12:31:08 +02:00
parent 2a1cbea209
commit 551be318cf
2 changed files with 38 additions and 5 deletions

View File

@ -1,7 +1,11 @@
27-04-2024 René Huiberts <rhuibertsjr@gmail.com> 27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
Added: simplified boyermoore string-search algorithm
27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
Added: ASCII string api Added: ASCII string api
27-04-2024 René Huiberts <rhuibertsjr@gmail.com> 27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
Added: project layout Added: project layout

View File

@ -1,17 +1,46 @@
#include "base.h" #include "base.h"
#include "arena.h" #include "arena.h"
#include "string.h"
#include "win32_platform.h" #include "win32_platform.h"
#include "arena.c" #include "arena.c"
#include "string.c"
#include "win32_platform.c" #include "win32_platform.c"
int int
main(void) 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; return 0;
} }