Найти в строке указанную подстроку и заменить ее на новую. Строку, ее подстроку для замены и новую подстроку вводит пользователь.
Найти начало (индекс первой буквы) подстроки в строке.
Измерить длину подстроки.
Удалить подстроку из строки, начиная с позиции ее первой буквы и на ее длину.
Вставить новую подстроку в позицию, где раньше была первая буква старой подстроки.
Однако данный алгоритм не является универсальным для всех языков программирования. В каждом языке есть свои методы для работы со строками, хотя большинство из них схожи.
Pascal
var
s,s_old,s_new: string;
i,l_old: byte;
begin
write('Строка: ');
readln(s);
write('Ее заменяемая подстрока: ');
readln(s_old);
write('Новая подстрока: ');
readln(s_new);
i := pos(s_old,s);
l_old := length(s_old);
delete(s,i,l_old);
insert(s_new,s,i);
writeln(s);
end.
Строка: Здравствуйте, Змей Горыныч. Сегодня совещание в 10.00
Ее заменяемая подстрока: Змей Горыныч
Новая подстрока: Арчибальт Аристархович
Здравствуйте, Арчибальт Аристархович. Сегодня совещание в 10.00
i = s.find(s_old)
while i != -1:
l = len(s_old)
s = s[0:i] + s_new + s[i+l:]
i = s.find(s_old)
print(s)
Строка:
11 23 44 55 23 22
Ее заменяемая подстрока:
23
Новая подстрока:
!!!
11 !!! 44 55 !!! 22
В данном случае новая строка формируется путем взятия срезов из строки и вставки между ними новой подстроки.
Старая подстрока исключается, т.к. берется срез до ее первого символа и срез после ее последнего символа. Последний символ подстроки определяется сложением индекса ее первого символа с ее длинной.
s_start$ = left(s$,i-1)
s_end$ = right(s$,length(s$) - i - l+1)
s$ = s_start$ + s_new$ + s_end$
print s$
Строка: abc def class
Ее заменяемая подстрока: class
Новая подстрока: ord
abc def ord
В Basic-256, в отличие от алгоритма приведенного выше, "вырезаются" части строк до подстроки и после нее. После этого новая строка "собирается" из трех частей: части перед страрой подстрокой, новой подстрокой и части после старой подстроки.
Подписаться
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Pascal
var s,s_old,s_new: string; i,l_old: byte; begin write('Строка: '); readln(s); write('Ее заменяемая подстрока: '); readln(s_old); write('Новая подстрока: '); readln(s_new);
i := pos(s_old,s); l_old := length(s_old); delete(s,i,l_old); insert(s_new,s,i);
writeln(s); end.
Строка: Здравствуйте, Змей Горыныч. Сегодня совещание в 10.00 Ее заменяемая подстрока: Змей Горыныч Новая подстрока: Арчибальт Аристархович Здравствуйте, Арчибальт Аристархович. Сегодня совещание в 10.00
i = s.find(s_old) while i != -1: l = len(s_old) s = s[0:i] + s_new + s[i+l:] i = s.find(s_old)
print(s)
Строка: 11 23 44 55 23 22 Ее заменяемая подстрока: 23 Новая подстрока: !!! 11 !!! 44 55 !!! 22
В данном случае новая строка формируется путем взятия срезов из строки и вставки между ними новой подстроки.
Старая подстрока исключается, т.к. берется срез до ее первого символа и срез после ее последнего символа. Последний символ подстроки определяется сложением индекса ее первого символа с ее длинной.
s_start$ = left(s$,i-1) s_end$ = right(s$,length(s$) - i - l+1)
s$ = s_start$ + s_new$ + s_end$
print s$
Строка: abc def class Ее заменяемая подстрока: class Новая подстрока: ord abc def ord
В Basic-256, в отличие от алгоритма приведенного выше, "вырезаются" части строк до подстроки и после нее. После этого новая строка "собирается" из трех частей: части перед страрой подстрокой, новой подстрокой и части после старой подстроки.