Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr) - C (СИ)
Формулировка задачи:
Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr).Помогите плииз
Решение задачи: «Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr)»
textual
Листинг программы
char* pos(char* str, const char* substr) { char* t; const char* s; for (; *str; ++str) { for (t = str, s = substr; *t && *s && (*t == *s); ++t, ++s); if (*s == 0) { break; } } return str; }
Объяснение кода листинга программы
- Входные данные функции:
- str - указатель на начало строки, в которой ищется подстрока.
- substr - указатель на начало подстроки, которую необходимо найти.
- Создаются две временные переменные:
- t - указывает на текущий символ в строке str.
- s - указывает на текущий символ в подстроке substr.
- Начинается цикл, который выполняется до тех пор, пока:
- str не станет равно NULL (т.е. не будет достигнут конец строки).
- s не станет равно NULL (т.е. не будет достигнут конец подстроки).
- t и s не будут указывать на один и тот же символ (т.е. текущий символ строки не будет равен текущему символу подстроки).
- Если s станет равно NULL (т.е. будет достигнут конец подстроки), то выполняется действие:
- s устанавливается равным NULL.
- str устанавливается равным t.
- функция завершается и возвращает значение str.
- Если условие в пункте 3 не выполняется, то выполняется следующее действие:
- t и s сдвигаются на следующий символ.
- Цикл продолжается до тех пор, пока не будет выполнено условие в пункте 4.
- Возвращаемое значение функции - указатель на первый символ подстроки в строке (т.е. на символ, на котором функция завершилась).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д