diff --git a/lithos_c/inc/Lth_stdlib.h b/lithos_c/inc/Lth_stdlib.h index 8c1cdd6..d3afe50 100644 --- a/lithos_c/inc/Lth_stdlib.h +++ b/lithos_c/inc/Lth_stdlib.h @@ -25,4 +25,7 @@ __str Lth_strlocal(__str s); // Print void Lth_PrintString(char const *s); +// Hash +size_t Lth_Hash_char(char const *s); + #endif//lithos3__Lth_stdlib_h diff --git a/lithos_c/src/stdlib.c b/lithos_c/src/stdlib.c index e61a327..2b2c109 100644 --- a/lithos_c/src/stdlib.c +++ b/lithos_c/src/stdlib.c @@ -83,4 +83,19 @@ void Lth_PrintString(char const *s) for(char const *p = s; *p;) ACS_PrintChar(*p++); } +// +// Lth_Hash_char +// +size_t Lth_Hash_char(char const *s) +{ + if(s == NULL) return 0; + + size_t ret = 0; + + while(*s) + ret = ret * 101 + (unsigned char)(*s++); + + return ret; +} + // EOF