From cc08212e546ba99c4c164cf2fc2b5dd5c6bf2181 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, 1 Nov 2025 06:15:23 -0400 Subject: [PATCH] sdds --- str_lib.c | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) 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; +}