Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Функция поиска строки B в строке A
- char *search_str (char *A, char *B)
- {
- bool m = 0; // Булевая переменная, отвечающая за нахождение строки В в строке А.
- char *skA, *skB, *sli = A;
- if ( *B =='\0') // Проверяем, состоит ли строка В из одного символа '\0'
- return A;
- while (*sli != '\0' && m == 0) // Сдвигаем указатель sli до тех пор, пока значением в нем не достигнет символа окончания строки
- {
- skA = sli; // "Вагонетка" по строке А, начиная с sli
- skB = B; // "Вагонетка" по строке В
- while (*skA == *skB && *skA != '\0' && skB != '\0') // Сравниваем значения, на которые "смотрят" указатели skA и skB, если они равны и эти значения не '\0', то переходим к следующей итерации. Строка будет найдена, если "вагонетка" по строке В дойдет до символа '\0' + дойдет раньше, чем "вагонетка" по строке А дойдет до своего '\0'
- {
- skA++;
- skB++;
- }
- if (*skB == '\0') // Если строка В найдена в строке А, то флажок становится равен 1
- m = 1;
- else
- sli++;
- }
- if (m == 0)
- return NULL; // Если строка В не найдена в строке А, то возвращаем NULL
- else
- return sli; // Если строка В найдена в строке А, то возвращаем на нее указатель.
- }
- // Функция поиска символа из строки В в строке А
- char *strchr_search_str (char *A, char *B)
- {
- bool m = 0; // Булевая переменная, отвечающая за нахождение символа из строки В в строке А
- char *skA = A, *skB = B;
- if (*skB == '\0')
- return NULL;
- while (*skA != '\0' && m == 0)
- {
- skB = B; // "Вагонетка" по строке В
- while (*skB != '\0' && m == 0)
- {
- if (*skB == *skA)
- m = 1;
- else
- skB++;
- }
- if (m == 0)
- skA++;
- }
- if (m == 0)
- return NULL;
- else
- return skA;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement