Простейшая обработка строки
От: кт  
Дата: 18.03.22 16:15
Оценка:
Наверное, один из самых простых тестов, призванный просто продемонстрировать удобство (или неудобство) работы в конкретном языке со строками.
Имеется строка заранее неизвестной длины. Желательно, чтобы она задавалась при вызове из командной строки.
Требуется: исключить из этой строки все комбинации символов «45» и получившийся результат записать на место исходной строки.
Условие: использовать только встроенные возможности языка, без внешних библиотек (кроме, может быть, ввода-вывода).
Пример на языке PL/1-KT:
test:proc(s) main;
dcl s char(*) var;
do while(index(s,'45')>0);
   s=replace(s,'','45');
end while;
put data(s);
end test;

вызов     test 123456  вывод S= 1236
вызов     test 444555  вывод S=       (пустая строка)

Используются встроенные функции работы со строками:
index — поиск номера позиции образца в строке;
replace — замена в строке образца на заданный, в данном случае пустой.

Вполне себе удобно и наглядно и всего 7 строк текста, хотя и приходится организовать цикл обработки строки из-за возможной рекурсии. Встроенная replace получается универсальной: и для замены и для удаления.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.