Примеры задач
Строки символов
Заменить все вхождения подстроки Str1 на подстроку Str2 (подстроки вводятся с клавиатуры). Методика решения
Например:
Строка: я пошла в кино;
Подстрока 1: я;
Подстрока 2: ты;
Результат: ты пошла в кино.
Используемые переменные:
St – строка;
Str1 – подстрока 1;
Str2 – подстрока 2;
K – номер позиции.
Для реализации данной программы понадобятся следующие стандартные процедуры и функции для работы со строками: Функция pos(s, c) определяет номер позиции, начиная с которой строка s первый раз входит в строку с ; Функция copy(s, n, k) – из строки s выделяет k символов, начиная с n -го символа; Процедура вставки insert(s1, s2, n) – строка s1 вставляется в строку s2 , начиная с n – го символа. Процедура удаления delete(s, k, n) – из строки s удаляется n символов, начиная с k - того.
Считываем с экрана строку st и подстроки str1 и str2 . Затем с помощью функции pos(str1, st) определяем, начиная с какой позиции подстрока str1 первый раз входит в строку st . С помощью процедуры delete(st,k,length(str1)) удаляем из строки st подстроку str1 . Далее, используя процедуру insert(str2, st, k) , вставляем на это место подстроку str2 . Эти действия необходимо повторять, пока есть вхождения подстроки str1 в строку st (пока pos(str1, st) < > 0 ). Выводим полученную строку st на экран.
Program ex4_4; Uses Crt; Var st,str1,str2:String; k:byte; BEGIN Clrscr; Writeln('Введите строку'); Readln(st); Writeln('Введите подстроку,которую нужно заменить'); Readln(str1); Writeln('Введите подстроку,которой нужно заменить'); Readln(str2); While Pos(str1,st)<>0 Do Begin k:=Pos(str1,st); Delete(st,k,Length(str1)); Insert(str2,st,k); End; Write(st); Readkey; End.