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


         

Строка S2 не входит


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.

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