Chủ đề: Xóa kí tự trong xâu
-
12-09-2009, 06:18 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Xóa kí tự trong xâu
Viết chương trình nhập vào một xâu bất kì gồm các kí tự từ 'A' đến 'Z', in ra màn hình xâu sau khi đã xoá bỏ tất cả các kí tự 'A'.
-
12-09-2009, 06:22 AM #2
Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 7
Cách 1 thì dùng xâu s2:=''
S2:='';
For i:=1 to length(S1) do
IF S<>'A' then S2:=S2+S1;
write(S2);
Các bạn hãy thử viết chương trình nhưng không dùng xâu S2, dùng thủ tục Delete xem sao nhé!
-
12-10-2009, 12:59 AM #3
Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 24
Mã:var i:integer; s:string; begin readln(s); for i:=length(s) downto 1 do if s[i]='a' then delete(s,i,1); writeln(s); readln end.
-
12-10-2009, 01:41 AM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
bẠN HANG_VT AH, cám ơn bạn. Tại sao bạn lại nghĩ ra vòng lặp lùi, mà nếu dùng thủ tục Delete thì vòng lặp tiến sẽ không xóa được các kí tự 'A' liền nhau.
-
12-10-2009, 04:47 AM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Cách khác, dùng vòng lặp tiến:
Mã:var s:string;i:byte; begin write('Nhap xau s: '); readln(s); i:=1; while (i<=length(s)) do if s[i]='A' then delete(s,i,1) else inc(i); write('Xau moi la:',s); readln; end.
-
12-10-2009, 05:49 AM #6
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 2
bạn Binh_nguyen thu làm cách dùng vòng lặp For tiến xem sao
-
12-10-2009, 05:53 AM #7
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
Tại sao mình viết chương trình như thế này thì không được nhỉ
For i:=1 to length(S) do
While S='A' then Delete(S,i,1);
write(S);
Còn viết vòng For như thế này thì tất nhiên là không được rồi
For i:=1 to length(S) do if S='A' then Delete(S,i,1); thì sẽ không xóa hết các chữ 'A' liền nhau
Vì sau khi xóa thì độ dài của xâu sẽ thay đổi, mỗi lần xóa sẽ giảm 1 đơn vị.
-
12-10-2009, 06:06 PM #8
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
"If ... Then ..." hoặc là "While ... Do ..." chứ bạn.
For i:=1 To Length(s) Do
If s = 'A' Then Begin Delete(s,i,1); Dec(i); End;
Write(s);
Xem cách này thử xem, mình chưa thử.
-
12-11-2009, 12:54 AM #9
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Gửi bởi binhnguyenLQD-kg
Gửi bởi HASOGROUP
a ơi , trong vòng for , k đc giảm hoặc tăng biến chạy [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
-
12-11-2009, 12:58 AM #10
Silver member
- Ngày tham gia
- Jan 2016
- Bài viết
- 58
Gửi bởi lehang_gb1
Giải thix của bạn k đúng , code của mình n giảm nhưng vẫn đúng đây thôi
Xe nâng người Boom lift được Công Ty TNHH Trung thành phân phối chính hãng tại khu vực phía Bắc. Với chi phí đầu tư ban đầu thấp hơn rất nhiều so với các loại xe nâng dầu , xe nâng động cơ loại...
Xe nâng người được trung thành nhập khẩu giá tốt