Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Работа со сточками.


Автор: Wildklas 5.11.2010, 02:08
Здравствуйте. Вопрос заключается в следующем: 
Дано строки S и S0. Удалить из строки S все подстроки, совпадающие
с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

Подскажите пожалуйста как это решить, а то я совсем запутался..

Автор: Данкинг 5.11.2010, 02:34
Что понимается под "подстрокой"? Одна буква - тоже подстрока?

Автор: aleksh 5.11.2010, 02:41
можно через pos, но лучше через центр помощи

Автор: Qu1nt 5.11.2010, 08:54
Код

S := StringReplace(S, S0, '', [rfReplaceAll]);

Автор: Wildklas 5.11.2010, 08:54
Цитата

Что понимается под "подстрокой"? Одна буква - тоже подстрока?
 Насколько я знаю 1 буква, тоже подстрока, а тут иметься введу много букв =)
aleksh Через пос у меня не очень получаеться =( как это сделать через центр помощи?? Подскажите пожалуйста.

Добавлено через 3 минуты и 6 секунд
О, Qu1nt, спасибо за подсказку, попробую разобраться smile

Автор: Данкинг 5.11.2010, 10:25
Цитата

Цитата(Qu1nt @  5.11.2010,  08:54 Найти цитируемый пост)
S := StringReplace(S, S0, '', [rfReplaceAll]);


Т.е. требовалось целиком S0 удалить? А я-то уж прикидывал, как покрасивее написать вырезание подстрок. smile 

Автор: Wildklas 5.11.2010, 21:09
Всё, спасибо, разобрался.
Код

program Project1;

{$APPTYPE CONSOLE}


uses
  SysUtils;

var s,s0: string;
r: char;
n,i,n1: integer;
begin
  write('Input string: ');
  readln(s);
  write('Input substring: ');
  readln(s0);
   n1:=pos(s0,s);
    if n1=0 then write('No coincident string ');
while n1>0 do
begin
delete(s,n1,length(s0));
n1:=pos(s0,s);
end;
 Write('New string: ',s);
  readln;
end.
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)