feat: strlast/first and _pred equivs now null-terminate

This commit is contained in:
Sara 2024-01-25 00:04:46 +01:00
parent 16d2d8ebf6
commit 1d92c6b827

View file

@ -16,7 +16,7 @@ uintptr_t strhash(const char* s) {
long strlast(const char* rbegin, const char* rend, char search) {
const char* itr = rbegin;
while(itr != rend)
while(itr < rend && *itr != '\0')
if(*itr == search) return itr - rend;
else itr--;
return -1;
@ -24,7 +24,7 @@ long strlast(const char* rbegin, const char* rend, char search) {
long strfirst(const char* begin, const char* end, char search) {
const char* itr = begin;
while(itr != end)
while(itr < end && *itr != '\0')
if(*itr == search) return itr - begin;
else itr++;
return -1;
@ -39,7 +39,7 @@ long strcount(const char* begin, const char* end, char search) {
long strfirst_pred(const char* begin, const char* end, CharPredFn pred) {
const char* itr = begin;
while(itr != end)
while(itr < end && *itr != '\0')
if(pred(*itr)) return itr - begin;
else itr++;
return -1;
@ -47,7 +47,7 @@ long strfirst_pred(const char* begin, const char* end, CharPredFn pred) {
long strlast_pred(const char* rbegin, const char* rend, CharPredFn pred) {
const char* itr = rbegin;
while(itr != rend)
while(itr < rend && *itr != '\0')
if(pred(*itr)) return itr - rend;
else itr--;
return -1;