Chủ đề: Xâu kí tự (STRING)
-
11-27-2011, 07:20 PM #1
Junior Member
- 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:
-
11-28-2011, 04:04 AM #2
Junior Member
- 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.
-
12-12-2011, 06:10 AM #3
Senior Member
- 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.
-
12-12-2011, 10:59 PM #4
Junior Member
- 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
-
12-13-2011, 02:21 AM #5
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
uh de to xem lai! To quen chua xet TH do
-
12-13-2011, 02:27 AM #6
Junior Member
- 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
-
12-13-2011, 02:34 AM #7
Junior Member
- 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.
-
12-13-2011, 10:54 PM #8
Junior Member
- 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:
-
12-14-2011, 01:12 AM #9
Junior Member
- 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.
Theo điều tra tình hình sử dụng thuốc lá ở người trưởng thành năm 2020 do Bộ Y tế triển khai, ngày nay tỷ lệ đàn ông Việt Nam hút thuốc đang ở mức 42,3%. Không chỉ có khả năng gây ung thư và một...
Những thói quen khiến "cuộc vui" của hai người trở nên... dở dang