Kết quả 1 đến 9 của 9

Chủ đề: Xâu kí tự (STRING)

  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    6

    Xâu kí tự (STRING)

    Thầy ra cho mình một bài về xâu kí tự nhưng khó quá, các bạn giải giúp mình với. Đề bài là:
    Nhập 2 xâu kí tự và kiểm tra xem xâu thứ nhất xuất hiện bao nhiêu lần trong xâu thứ 2.:emlaugh:

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    answer

    bạn thử code này xem nhé !
    Mã:
    program chuoi;uses crt;
    var c1,c2:string;
    {--- chuong trinh con ---}
    function kt(st1,st2:string):integer;
    var      i,d:integer;
             tam:string;
    Begin
         d:=0;
         i:=0;
         repeat
               inc(i);
               tam:=copy(st2,i,length(st1));
               if tam=st1 then inc(d);
         until i>length(st2)-length(st1);
         kt:=d;
    End;
    {--- chuong trinh chinh ---}
    BEGIN
         clrscr;
         write('nhap chuoi thu 1 :');readln(c1);
         write('nhap chuoi thu 2 :');readln(c2);
         writeln('so lan xuat hien cua chuoi 1 trong chuoi 2 la :',kt(c1,c2));
         readln;
    END.

  3. #3
    Ngày tham gia
    May 2016
    Bài viết
    148
    Bài này đơn giản thôi bạn, có gì đâu mà khó!
    Đơn giản là kiểm tra xem xâu S1 xuất hiệntrong S2 thì tăng đếm và xóa xâu S1 trong S2 và cứ tiếp tục như vậy thôi.
    Var S1,S2:string;
    dem:integer;
    Begin
    write('Nhap vao xau thu nhat S1='); Readln(S1);
    write('Nhap vao xau thu hai S2=');Readln(S2);
    dem:=0;
    While pos(s1,S2),.0 do
    begin
    dem:=dem+1;
    Delete(S2,pos(s1,s2),length(s1);
    End;
    write('xau s1 xuat hien trong xau S2',dem,' lan');
    Readln
    End.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    3
    @@

    theo bạn lehang_gb1 thì nếu s2=abcbcb , s1=bcb thì s1 xuất hiện trong s2 nao nhiêu lần

  5. #5
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    uh de to xem lai! To quen chua xet TH do

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    5
    Tnhjnx

    Vậy thì sau khi kiểm tra S1 xuất hiện trong S2 tại vị trí pos(s1,s2) thì xóa trong xâu S1 chỉ 1 kí tự thôi

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    7
    Var S1,S2:String;
    dem:integer;
    Begin
    write('Nhap vao 1 xau S1:');Readln(S1);
    Write('Nhap vao xau S2:'); readln(S2);
    dem:=0;
    While pos(S1,S2)<>0 do
    Begin
    inc(dem);
    Delete(S2,pos(S1,S2),1);
    End;
    write('Xau s1 xuat hien trong s2:',dem,' lan');
    Readln
    End.

  8. #8
    Ngày tham gia
    Nov 2015
    Bài viết
    3
    $.$

    vậy thì làm theo code của tui đi ! copy từng chuỗi con của s2 rồi kiểm tra có trùng với s1 không, nếu có thì tăng đếm .... có vậy thôi làm gì phải xóa chuỗi cho rắc rối :shifty:

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    6
    hjgasdjhl

    bài của bạn minhthang_cr chạy được, mình cảm ơn[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]. Mình cũng có 1 cách, các bạn chạy thử xem có được không:
    var st1,st2:string;
    s,l,r,i:integer;
    begin
    write(‘nhap st1’);readln(st1);
    write(‘nhap st2’);readln(st2);
    s:=0;
    for i:=1 to length(st2) do
    begin
    if st1=copy(st2,i,length(st1)) then s:=s+1;
    end;
    writeln(‘so lan xuat hien cua xau thu nhat trong xau thu hai:’,s);
    readln;
    end.

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •