#include /* * Вернуть длину строки. * Строки в C -- это массив символов, в конце которого находится нулевой символ ( '\0') */ int mystrlen(const char *s) { int length = 0; while (s[length] != '\0') { length++; } return length; } /* * Найти индекс, с которого строка s2 присутствует в строке s1 * или -1 */ int mystr_idx(const char *s1, const char *s2) { int len1 = mystrlen(s1); int len2 = mystrlen(s2); // Если вторая строка пустая, возвращаем 0 if (len2 == 0) { return 0; } // Если первая строка короче второй, точно не найдем if (len1 < len2) { return -1; } // Проходим по первой строке for (int i = 0; i <= len1 - len2; i++) { int j; // Сравниваем подстроку начиная с позиции i for (j = 0; j < len2; j++) { if (s1[i + j] != s2[j]) { break; } } // Если прошли всю вторую строку - нашли вхождение if (j == len2) { return i; } } return -1; }