Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr).Помогите плииз

Решение задачи: «Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr)»

textual
Листинг программы
  1. char* pos(char* str, const char* substr)
  2. {
  3.     char* t;
  4.     const char* s;
  5.  
  6.     for (; *str; ++str)
  7.     {
  8.         for (t = str, s = substr; *t && *s && (*t == *s); ++t, ++s);
  9.  
  10.         if (*s == 0)
  11.         {
  12.             break;
  13.         }
  14.     }
  15.  
  16.     return str;
  17. }

Объяснение кода листинга программы

  1. Входные данные функции:
    • str - указатель на начало строки, в которой ищется подстрока.
    • substr - указатель на начало подстроки, которую необходимо найти.
  2. Создаются две временные переменные:
    • t - указывает на текущий символ в строке str.
    • s - указывает на текущий символ в подстроке substr.
  3. Начинается цикл, который выполняется до тех пор, пока:
    • str не станет равно NULL (т.е. не будет достигнут конец строки).
    • s не станет равно NULL (т.е. не будет достигнут конец подстроки).
    • t и s не будут указывать на один и тот же символ (т.е. текущий символ строки не будет равен текущему символу подстроки).
  4. Если s станет равно NULL (т.е. будет достигнут конец подстроки), то выполняется действие:
    • s устанавливается равным NULL.
    • str устанавливается равным t.
    • функция завершается и возвращает значение str.
  5. Если условие в пункте 3 не выполняется, то выполняется следующее действие:
    • t и s сдвигаются на следующий символ.
  6. Цикл продолжается до тех пор, пока не будет выполнено условие в пункте 4.
  7. Возвращаемое значение функции - указатель на первый символ подстроки в строке (т.е. на символ, на котором функция завершилась).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы