Помощь - Поиск - Пользователи - Календарь
Полная версия: строка(удаление повторяющихся символов)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
faint
Здрасти. подскажите пожалуйса а то я забыл: имеется строка с числами
нужно по 4 числа сравнивать и удалить повторяющиеся
(т.е например 11112222111133332222 должно получиться 111122223333)
Подскжите как это записать??
volvo
Проходом по строке от конца к началу:

var
s: string;
i: integer;

begin
s := '11112222555511113333444422224444';
i := length(s) - 3;
while i > 0 do begin
if pos(copy(s, i, 4), copy(s, 1, i - 1)) > 0 then delete(s, i, 4);
dec(i, 4);
end;
writeln(s);
end.

faint
volvo
спасибо!!!!!!
чёто твой метод как процедура токо запахал...
Теперь осталось самое малое как то выделить что это не строчка с числами(1111_2222_3333_ например)
Ozzя
Проверять условие:
if s[i] in ['0'..'9'] then
// делаешь то, что тебе нужно
faint
Цитата(Ozzя @ 18.05.2007 10:44) *

Проверять условие:
if s[i] in ['0'..'9'] then
// делаешь то, что тебе нужно

НЕПОНИЛЬ МОЖНО по подробней

Ozzя
Тебе что нужно?
Проверить, имеются ли в строке не цифры?
Если имеются, то что нужно делать?
faint
Цитата(Ozzя @ 18.05.2007 10:58) *

Тебе что нужно?
Проверить, имеются ли в строке не цифры?
Если имеются, то что нужно делать?


например у меня имелась 11112222111133332222 получилась 111122223333 а теперь нада их както отделить например 1111_2222_3333
Ozzя
var
s:string;
j,i:integer;
begin
s:='111122223333';
j:=1;
for i:=1 to length(s)-1 do
if i mod 4 =0 then
begin
insert('_',s, i+j);
inc(j);
end;
writeLn(s);
end.

faint
СПАСИБО!!!! спасли (не люблю я эти строки блин...)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.