From 78f8782c9a9d368632e4f5afbb7bfa984c941f75 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 05:58:09 -0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D1=8B=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20mystrlen=20=D0=B8=20mystr=5Fidx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- str_lib.c | 47 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/str_lib.c b/str_lib.c index fa1d7db..c2b2710 100644 --- a/str_lib.c +++ b/str_lib.c @@ -7,7 +7,16 @@ int mystrlen(const char *s) { - // + // + if (s == NULL) { + return -1; // или 0, в зависимости от требований + } + + int length = 0; + while (s[length] != '\0') { + length++; + } + return length; } /* @@ -17,7 +26,37 @@ mystrlen(const char *s) int mystr_idx(const char *s1, const char *s2) { - // - return -1; + // + if (s1 == NULL || s2 == NULL) { + return -1; + } + + int len1 = mystrlen(s1); + int len2 = mystrlen(s2); + + // Если подстрока пустая, возвращаем 0 + if (len2 == 0) { + return 0; + } + + // Если подстрока длиннее строки, она не может содержаться в ней + if (len2 > len1) { + return -1; + } + + // Поиск подстроки + for (int i = 0; i <= len1 - len2; i++) { + int j; + for (j = 0; j < len2; j++) { + if (s1[i + j] != s2[j]) { + break; + } + } + // Если дошли до конца подстроки - нашли совпадение + if (j == len2) { + return i; + } + } + + return -1; } -