Функция - 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.
- Возвращаемое значение функции - указатель на первый символ подстроки в строке (т.е. на символ, на котором функция завершилась).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д