Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 15:06   #1
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
По умолчанию как одно слово заменить не другое?

Каждое слово one заменить на three... ( Нужно использовать только length и setlength вместо delete pos insert) .... люди подскажите как это сделать??

program z5123;
var T:string;
i:integer;
zc,zn:string;
begin
writeln('input T');
readln(T);
zc:='one';
zn:='three';
while pos(zc,T)>0 do
begin
i:=pos(zc,T);
delete(T,i,length(zc));
insert(zn,T,i);
end;
writeln(' new text');
writeln(T);
readln
end.
ilyha93 вне форума Ответить с цитированием
Старый 27.12.2011, 20:01   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Выделять из строки слова и записывать их в другую строковую переменную, заменяя слово one на three, при этом остальные символы переписывать как есть.
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 27.12.2011, 20:07   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

вот так например
Код:
program findAndReplace;
const
     Nmax = 10000;
type
    MyString = array[0..Nmax-1] of char;
var
   str: MyString;
   oldsubstr: MyString;
   newsubstr: MyString;

{ вспомогательные функции }
function getSubstring(str: MyString; first, last : integer) : MyString;
var
  res : MyString;
  i : integer;
begin
     if ( ( first > last ) or ( last > length( str ) ) ) then begin
        if first > last then begin
            res := ''; write(' first position must be <= last position ');
        end else begin
            res := ''; write(' last position must be < length(str) ');
        end;
     end
     else begin
        for i := 0 to last - first do begin
            res[i] := str[first + i];
        end;
        res[last - first + 1] := char(0);
     end;
     getSubstring := res;
end;

function concatenate( str1,str2: MyString ) : MyString;
var
  res : MyString;
  i,ls1,ls2 : integer;
begin
     ls1 := length(str1);
     ls2 := length(str2);
     res := str1;
     for i := 0 to ls2 - 1 do
         res[ls1 + i] := str2[i];
     concatenate := res;
end;

function equals(str1, str2 : MyString) : boolean;
var i: integer;
begin
     if length(str1) <> length(str2) then begin
        equals := false; exit;
     end
     else begin
          for i := 0 to length(str1) - 1 do begin
              if (str1[i] <> str2[i]) then begin
                 equals := false;
                 exit;
              end;
          end;
     end;
     equals := true;
end;
{ вспомогательные функции }

function replace( str, oldsubstr, newsubstr: MyString ): MyString;
var
      i, osl, sl: integer;
      resultat: MyString;
begin
      resultat := '';
      i := 0;
      sl := length(str);
      osl := length(oldsubstr);
      if osl = 0 then begin writeln('Old Substring must have length > 0'); replace := str; exit; end;
      while  i <= sl - osl  do begin
         if equals( oldsubstr, getSubstring( str,i,i + osl - 1 ) ) then  begin
            resultat := concatenate(resultat,newsubstr);
            i := i + osl;
         end
         else  begin
               resultat := concatenate(resultat, getSubstring(str,i,i));
               i := i + 1;
         end;
      end;
      if  i < sl then begin resultat := concatenate(resultat,getSubstring(str,i,sl-1)); end;
      replace := resultat;
end;

begin
     Writeln('Find And Replace Algoritm.');
     Write('String: '); Readln(str);
     Write('Old Substring: '); Readln(oldsubstr);
     Write('New Substring: '); Readln(newsubstr);
     Write('Result: '); writeln( replace( str, oldsubstr, newsubstr ) );
     Writeln('Press any key to continue...');
     Readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово (С++) Lapochka Помощь студентам 6 01.12.2011 14:05
Работа со строками.даны три слова.Одно из них имеет меньшее количество символов,чем другое.Определить и в Ashley Помощь студентам 6 01.06.2010 22:08
Как заменить слово в текстовом поле. vladtr SQL, базы данных 2 19.04.2010 09:46
Как заменить определенное слово в ячейке, на содержимое другой ячейки. Брысь Microsoft Office Excel 2 04.03.2010 16:01