feat: add streencmp

This commit is contained in:
0xdeadbeer 2024-08-28 20:30:33 +02:00
parent c46eb7b3aa
commit e5f6c01c2b
2 changed files with 28 additions and 1 deletions

14
README
View File

@ -4,6 +4,17 @@
Fast*er* string comparison - an alternative to thousands of strcmp calls
This is an O(n) solution - n being the length of the string to be checked.
A plus is that this method will stay O(n) *no matter the length of the string
nor the number of strings to be checked against*.
Potential minuses might be the additional memory needed to store the trie
data structure or the computational time required to generate the tree before
utilizing it. Therefore, users are advised to use a secure, fast hashmap
instead of streecmp. streecmp is only applied to specific scenarios where
a rather simple or fast solution for string comparison is required so the
project moves on.
RES: en.wikipedia.org/wiki/Trie
RES: en.wikipedia.org/wiki/Suffix_tree
RES: en.wikipedia.org/wiki/Radix_tree
@ -48,7 +59,8 @@ LEAKS
TODO
* everything done so far
* feat: add length option - streencpy
* feat: ++ strong or loose -- comparison option
COMMITS

View File

@ -115,3 +115,18 @@ int streecmp(struct nod *nod, char *str) {
return streecmp(target, str+1);
}
int streencmp(struct nod *nod, char *str, int len) {
for (int i = 0; i < len; i++) {
struct nod *target = nod->pool[*str];
if (target == NULL) {
return 0;
}
if (target->val.cval == '\0') {
return target->val.ival;
}
}
return 0;
}