diff --git a/str_lib.c b/str_lib.c index fa1d7db..774cb0c 100644 --- a/str_lib.c +++ b/str_lib.c @@ -7,7 +7,12 @@ int mystrlen(const char *s) { - // + // + int len = 0; + while (s[len] != '\0') { + len++; + } + return len; } /* @@ -17,7 +22,29 @@ mystrlen(const char *s) int mystr_idx(const char *s1, const char *s2) { - // - return -1; -} + // + int i = 0; // Индекс для s1 + + // Если s2 пустая строка, возвращаем 0 (поведение как у strstr) + if (s2[0] == '\0') { + return 0; + } + while (s1[i] != '\0') { + int j = 0; // Индекс для s2 + + // Внутренний цикл: сравниваем символы + while (s1[i + j] != '\0' && s2[j] != '\0' && s1[i + j] == s2[j]) { + j++; + } + + // Если j дошел до конца s2, значит s2 найдена + if (s2[j] == '\0') { + return i; // Возвращаем индекс начала вхождения + } + + i++; // Сдвигаем i, пробуем найти со следующего символа s1 + } + + return -1; +}