Задача - Замена подстроки - программирование на разных языках

Задача — Замена подстроки — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Замена подстроки
— программирование на Pascal, Си, Кумир, Basic-256, Python

Найти в строке указанную подстроку и заменить ее на новую. Строку, ее подстроку для замены и новую подстроку вводит пользователь.

  1. Найти начало (индекс первой буквы) подстроки в строке.
  2. Измерить длину подстроки.
  3. Удалить подстроку из строки, начиная с позиции ее первой буквы и на ее длину.
  4. Вставить новую подстроку в позицию, где раньше была первая буква старой подстроки.

Однако данный алгоритм не является универсальным для всех языков программирования. В каждом языке есть свои методы для работы со строками, хотя большинство из них схожи.

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

Python

print(‘Строка: ‘)
s = input()
print(‘Ее заменяемая подстрока: ‘)
s_old = input()
print(‘Новая подстрока: ‘)
s_new = input()

i = s.find(s_old)
l = len(s_old)
s = s[0:i] + s_new + s[i+l:] print(s) Строка:
11 22 33
Ее заменяемая подстрока:
33
Новая подстрока:
77
11 22 77

В данном случае новая строка формируется путем взятия срезов из строки и вставки между ними новой подстроки.

Старая подстрока исключается, т.к. берется срез до ее первого символа и срез после ее последнего символа. Последний символ подстроки определяется сложением индекса ее первого символа с ее длинной.

Basic-256

print «Строка: «;
input s$
print «Ее заменяемая подстрока: «;
input s_old$
print «Новая подстрока: «;
input s_new$

i = instr(s$,s_old$)
l = length(s_old$)

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, в отличие от алгоритма приведенного выше, «вырезаются» части строк до подстроки и после нее. После этого новая строка «собирается» из трех частей: части перед страрой подстрокой, новой подстрокой и части после старой подстроки.

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий