Не получается выполнить задачу - C (СИ)
Формулировка задачи:
Напишите функцию string in(), которая принимает в качестве аргументов два указателя на строки. Если вторая строка содержится внутри первой, функция должна возвратить адрес, с которого начинается вторая строка в первой строке. Например, вызов string_in ("данные", "ан") возвратит адрес символа ''а'' в строке данные. В противном случае функция должна возвратить нулевой указатель. Протестируйте функцию в завершенной программе, которая использует цикл для передачи входных значений созданной функции
Решение задачи: «Не получается выполнить задачу»
textual
Листинг программы
char *string_in(char *s, char *t) { int L = strlen(t), i; while (*s) { for(i=0; i < L; i++) if (s[i]!=t[i]) break; if (i==L) return s; s++; } return NULL; }
Объяснение кода листинга программы
- В функции
string_in
передаются два аргумента типаchar *
:s
иt
. - Переменная
L
инициализируется значениемstrlen(t)
. - В цикле
while
происходит итерация по символам строкиs
. - В каждой итерации цикла
for
происходит сравнение символов строкs
иt
. - Если найден первый символ, который не совпадает с соответствующим символом строки
t
, то циклfor
прерывается с помощью оператораbreak
. - Если цикл
for
выполнен полностью, то это означает, что строкиs
иt
являются идентичными, и функция возвращаетs
. - Если найден первый символ, который не совпадает с соответствующим символом строки
t
, то функция возвращаетNULL
. - Если цикл
while
завершается, то это означает, что строкаs
не содержит подстрокуt
, и функция возвращаетNULL
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д