Added: simplified boyer–moore string-search algorithm
This commit is contained in:
parent
2a1cbea209
commit
551be318cf
|
@ -1,7 +1,11 @@
|
|||
27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
|
||||
27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
|
||||
|
||||
Added: simplified boyer–moore string-search algorithm
|
||||
|
||||
27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
|
||||
|
||||
Added: ASCII string api
|
||||
|
||||
27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
|
||||
27-04-2024 René Huiberts <rhuibertsjr@gmail.com>
|
||||
|
||||
Added: project layout
|
||||
|
|
35
src/main.c
35
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user