Có thế giúp thêm bài này được không nhỉ? Nhập xâu A, nhập vào kí tự ch, kiểm tra xem ch xuất hiện ở vị trí nào trong xâu A, nếu không có thì xuất ra "không tìm thấy"
dùng hàm pos Mã: A:= 'xauvidu'; writeln('Nhap xau: '); readln(ch); c:= pos(ch,A); if c=0 then writeln('Khong tim thay'); else write('Vi tri la',c); lau roi ko pascal nhớ nhớ vậy!
chương trình hoàn chỉnh của bạn đây, đã compile và run: Mã: program TimVitriXau; var a, ch : string; c: integer; begin writeln('Nhap xau goc: '); readln(a); writeln('Nhap xau can tim: '); readln(ch); c:= pos(ch,a); if c=0 then writeln('Khong tim thay') else write('Vi tri la',c); readln(); end. hàm pos trong pascal cú pháp: pos(ch,a) với a là xâu gốc, ch là xâu cần tìm trên xâu a. hàm pos trả về dạng integer chỉ vị trí của xâu ch xuất hiện trong xâu a
Uses crt; Var A:string; Ch:char; i,t :integer; begin clrscr; write(‘nhap xau bat ki: ‘); readln(A); write(‘hap ch: ‘); readln(ch); t:=0 for i:=1 to length(A) do if ch=s then begin writeln(‘vi tri cu ach la:’,i); t:=t+1; end; if t=0 then writeln(‘khong tim thay’); readln; end. Như thế này cũng được ^^!. Tk bạn
Thứ nhất là chổ màu đỏ bị sai, thứ 2 là nếu bạn làm thế này thì chỉ tìm ký tự chứ không phải tìm chuỗi ký tự!
Như bài của bạn thì chỉ hiện ra 1 vị trí đầu tiên của ch thôi, hàm pos tìm vị trí đầu tiên. Nếu như có nhiều ch thì không hiện ra được vị trí của các ch sau. Đã test ^^!
sắp về lại cái thời kỳ mà anh em chúng ta ngồi hàng ngày trên 2mit để code c, c++, c# và pascal cho anh em rồi. nhớ cái thời kì đó quá. kimtan
Bài hoàn chỉnh của bạn đây, xuất ra tất cả các vị trí của xâu con. Mình cải tiến từ bài của bác alt+f4 program TimVitriXau; var a, ch : string; c,i,j: integer; begin writeln('Nhap xau goc: '); readln(a); writeln('Nhap xau can tim: '); readln(ch); i:=0; c:=1; j:=length(a); While c <> 0 do Begin c:= pos(ch,a); if (c=0) and (length(a)=j) then writeln('Khong tim thay') else begin writeln('Vi tri la: ',c+i); delete(a,c,length(ch)); i:=i+length(ch); end; End; readln; end.