Cho 2 xâu St1 và St2. Yêu cầu liệt kê các vị trí xuất hiện của xâu St1 trong xâu St2 bằng file. #Pascal

2 câu trả lời

Thuật toán thì như thế này 
Tính độ dài của chuỗi St2 rồi chạy vòng lặp từ 0 đến độ dài chuỗi st2 -  st1 rồi check điều kiện nếu 

chuỗi từ ký tự đang index của st2 đến ký tự st2- st1 + index - 1 thì phải = = st1 thì là vị trí cần tìm :)) chưa chạy thử để tối chạy thử xem :)) .

uses crt;
var d:text; s,s1,h:string; i:longint;
begin
clrscr;
   assign(d,'input.pas');reset(d);
      readln(d,s);
      readln(d,s1);
      for i:=1 to length(s) do  h:=h+' ';
   close(d);
   assign(d,'output.pas');rewrite(d);
      repeat
         i:=pos(s,s1); writeln(d,i);
         delete(s1,i,length(s));
         insert(h,s1,i);
      until pos(s,s1)=0;
   close(d);
end.

Câu hỏi trong lớp Xem thêm