1
0
forked from 131/lab3_test
Files
lab3_test/str_lib.c

51 lines
1.4 KiB
C
Raw Permalink Normal View History

2023-03-25 03:58:02 +03:00
#include <string.h>
/*
* Вернуть длину строки.
* Строки в C -- это массив символов, в конце которого находится нулевой символ ( '\0')
*/
int
mystrlen(const char *s)
{
2025-11-01 06:15:23 -04:00
// <YOURCODE>
int len = 0;
while (s[len] != '\0') {
len++;
}
return len;
2023-03-25 03:58:02 +03:00
}
/*
* Найти индекс, с которого строка s2 присутствует в строке s1
* или -1
*/
int
mystr_idx(const char *s1, const char *s2)
{
2025-11-01 06:15:23 -04:00
// <YOURCODE>
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++;
}
2023-03-25 03:58:02 +03:00
2025-11-01 06:15:23 -04:00
// Если j дошел до конца s2, значит s2 найдена
if (s2[j] == '\0') {
return i; // Возвращаем индекс начала вхождения
}
i++; // Сдвигаем i, пробуем найти со следующего символа s1
}
return -1;
}