Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ удаление всех одинаковых символов из строки

Автор: 18192123 27.11.2006 19:48

Подскажите, как из строки, состоящей из слов, удалить все символы а,с (из стандартного можно использовать только length, ord, char)

в голову ничего дельного по поводу этой задаче мне не приходит...

Автор: мисс_граффити 27.11.2006 20:49

самое простое решение: идем в цикле от 1 до длины строки по строке.
считали один символ. если он нам подходит - засунули во вторую строку. не подходит - просто читаем следующий.
один цикл, один условный оператор...

Автор: 18192123 27.11.2006 23:54

Цитата(мисс_граффити @ 27.11.2006 16:49) *

самое простое решение: идем в цикле от 1 до длины строки по строке.
считали один символ. если он нам подходит - засунули во вторую строку. не подходит - просто читаем следующий.
один цикл, один условный оператор...

СПАСИБО!!! biggrin.gif

Автор: klem4 28.11.2006 0:16

зачем лишняя строка ?

i := 1;
while (i <= Length(s)) do
if s[i] in ['a', 'c'] then Delete(s, i, 1)
else
inc(i);


Автор: volvo 28.11.2006 0:17

klem4, а в задании ясно сказано:

Цитата
(из стандартного можно использовать только length, ord, char)

Автор: klem4 28.11.2006 1:24

Упс, ну тогда можной свой delete сделать вот так например:

procedure _delete(var s: string; start, len: Integer);
var
i: Integer;
begin

if start <= 0 then exit;

if start + len > Length(s) then
len := Length(s) - start + 1;

for i := start to Length(s) - 1 do s[i] := s[i + len];

dec(s[0], len);

end;