From 93c460eef6495afda7d53ecebcc22634571a3ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=D0=B5=20=D0=98=D0=BC=D1=8F?= Date: Sat, 25 Oct 2025 06:09:23 -0400 Subject: [PATCH] Implement mystrlen and mystr_idx functions --- munit/str_lib.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 munit/str_lib.c diff --git a/munit/str_lib.c b/munit/str_lib.c new file mode 100644 index 0000000..579abcc --- /dev/null +++ b/munit/str_lib.c @@ -0,0 +1,33 @@ +#include "str_lib.h" + +size_t mystrlen(const char *str) { + if (!str) return 0; + size_t len = 0; + while (str[len] != '\0') { + len++; + } + return len; +} + +int mystr_idx(const char *str, const char *substr) { + if (!str || !substr) return -1; + + size_t str_len = mystrlen(str); + size_t substr_len = mystrlen(substr); + + if (substr_len == 0) return 0; + if (substr_len > str_len) return -1; + + for (size_t i = 0; i <= str_len - substr_len; i++) { + int found = 1; + for (size_t j = 0; j < substr_len; j++) { + if (str[i + j] != substr[j]) { + found = 0; + break; + } + } + if (found) return i; + } + + return -1; +}