Практика программирования (Бейсик, Си, Паскаль)




Задачи, советы и ответы - часть 22


if(si[i+j*h]!=s2[j]) goto ml;

printf("\n Шаг: %2d Позиции: %d",h-l,i+1);

for(k=l; k<L2; k++)

printf("-%d",i+i+k*h);

ml:;

}

} } }

if(k==0) printf("Строка S2 не входит в S1");

getch () ; }

Программа 3_13.pas

program red_str;

(Поиск вхождения S2 в S1 с разрядкой}

uses crt;

var

s1,s2:string;

i,j,k,h,L1,L2:integer;

label 1;

begin

clrscr;

write('Введите S1: ');

readln (si);

Ll:=length(sl);

write('Введите S2: ');

readln (s2);

L2:=length(s2);

k:=0;

for h:=l to L1 do

if (h=l)or(L2>1) then

for i:=l to L1-(L2-1)*h do

if s1[i]=s2[l] then begin

for j:=2 to L2 do

if s1[i+(j-l)*h]os2[j] then goto 1;

write ('Шаг: ',h-l:2,' Позиции: ',i);

for k:=l to L2-1 do

write('-',i+k*h);

writeln;

k:=l;

1:

end;

if k=0 then writeln('Строка 32 не входит в S1');

readln;

end.




Содержание  Назад