13th
Дек

Реализовать копирование, удаление, поиск в делфи не использую стандартные фунции

Posted by Chas under Пост-обзор

Люди помогите пожалуйста мне нужно реализовать вот такие методы.

1 – Копирование – копирование части строки заданной длины с заданной позиции.
2 – Удаление – удаление части строки заданной длины с заданной позиции.
3 – Поиск – поиск подстроки в строке.

Все это нужно реализовать не стандартным методом, использовать «Copy, Pos» – нельзя.

alex_fcsm:
Проверил – вроде работает

function pos(inp,ou:string):integer;
var  n,i:integer;
     flag:boolean;
begin

  flag:=false;//признак того что начали проверять совпадения
  n:=0;// количество совпдаений
  pos:=0;
  for i:=1 to length(inp) do
    begin
       if n=length(ou) then pos:=i-n+1;
       if flag then
       begin
         if ou[n]<>inp[i] then
         begin
           flag:=false;
           n:=0;
         end else inc(n);
       end;
       if ou[1]=inp[i] then
       begin
         flag:=true;
         n:=2;
       end;
     end;
end;

function del(a,len:integer;inp:string):string;
var i:integer;
    st:string;
begin
  st:=»;
  for i:=1 to length(inp) do
  if (i<a)or(i>(a+len-1)) then st:=st+inp[i];
  del:=st;
end;

function cop(a,len:integer;inp:string):string;
var i:integer;
    st:string;
begin
  st:=»;
  for i:=a to a+len-1 do
  st:=st+inp[i];
  cop:=st;
end;

begin                 
  writeln(cop(1,3,’123456′));
  writeln(del(1,3,’123456′));
  writeln(pos(’321234′,’123′));
end.

Тема на форуме

Похожие статьи