Kiểm tra xâu con SubSt có nằm trong xâu St hay không? Nếu xâu SubSt nằm trong xâu St thì hàm trả về vị trí đầu tiên của xâu con SubSt trong xâu St, ngược lại hàm trả về giá trị 0. Show 4. Thủ tục DELETE(Var St:String; Pos, Num: Byte); Xoá trong xâu St Num ký tự bắt đầu từ vị trí Pos. 5. Thủ tục INSERT(SubSt: String; Var St: String; Pos: Byte); Chèn xâu SubSt vào xâu St bắt đầu tại vị trí Pos. 6. Thủ tục STR(Num; Var St:String); Đổi số nguyên hay thực Num thành dạng xâu ký tự, kết quả lưu vào biến St. 7. Thủ tục VAL(St:String; Var Num; Var Code:Integer); Đổi xâu số St thành số và gán kết quả lưu vào biến Num. Nếu việc chuyển đổi thành công thì biến Code có giá trị là 0, ngược lại biến Code có giá trị khác 0 (vị trí của lỗi). Nhập 1 chuỗi, sau đó bỏ khoảng trắng ở đầu và cuối, khoảng trắng ở giữa 2 từ. var s:string; begin readln(s); while s[1]=#32 do delete(s,1,1); while s[length(s)]=#32 do delete(s,length(s),1); while pos(' ',s)<>0 do delete(s,pos(' ',s),1); writeln(s); readln; end. Như vậy là mình đã viết xong một số bài toán cơ bản về mảng hai chiều, tiếp tục đến phần xâu kí tự, mở đầu sẽ là bài toán đơn giản “tìm và xóa ký tự trong xâu pascal” trong Pascal. hãy theo dõi với onthihsg bên dưới nhé. Những bài toán về xử lí xâu kí tự hay văn bản là những bài toán hết sức thực tế, bởi các bạn có thấy không văn bản có mặt trong hầu hết các lĩnh vực, các chương trình tin học cũng vậy phải thường xuyên làm việc với danh sách, văn bản chính vì vậy mà mình rất coi trọng việc xử lí văn bản hay xâu kí tự khi dạy Pascal. Có một điều đáng tiếc là hầu như trong các đề thi HSG pascal lại thường không chú ý đến mảng này. Related Articles
Video hướng dẫn xóa ký tự trắng trong xâu pascalHướng dẫn xóa ký tự trong xâu pascalBài toán: Viết chương trình xóa kí tự trắng thừa trong xâu (Giữa các từ có 2 dấu cách liên tiếp là thừa 1 dấu cách) Dữ liệu vào file: del_32.INP có một dòng chứa xâu không quá 255 kí tự Dữ liệu ra file: del_32.OUT là xâu khi đã xóa những kí tự thừa VD: del_32.intdel_32.out Giua cac tu chi cach nhau mot khoang trang neu co hon 1 khoang trang la co khoang trang thuaGiua cac tu chi cach nhau mot khoang trang neu co hon 1 khoang trang la co khoang trang thuaÝ tưởng xóa kí tự trắng thừa của một xâu trong PascalMình giới thiệu với các bạn 2 hàm mà mình sử dụng trong thuật toán này:
Cách làm:
Code xóa khoảng trắng thừa của một xâu trong PascalTổng hợp thêm bài tập về xâu trong pascalBài 1: Nhập xâu S1, tạo xâu S2 gồm tất cả các chữ số của xâu S1 Program Xau_chu_so; Uses crt; Var i: integer; S1,S2: string; Begin Clrscr; Write(‘Nhap xau ki tu S1: ‘); Readln(S1); S2:=#32; For i:=1 to length(S1) to If S1[i] in [‘0’..’9’] then S2:=S2+S1[i]; Writeln(‘Xau S2: ‘,S2); End. Bài 2: Nhập xâu S1, tạo xâu S2 gồm tất cả các chữ cái của xâu S1 Program Xau_chu_cai; Uses crt; Var i: integer; S1,S2: string; Begin Clrscr; Write(‘Nhap xau ki tu S1: ‘); Readln(S1); S2:=#32; For i:=1 to length(S1) to If S1[i] in [‘A’..’Z’]+[‘a’..’z’] then S2:=S2+S1[i]; Writeln(‘Xau S2: ‘,S2); End. Bài 3: Nhập xâu S. Tìm ra có bao nhiêu chữ cái, bào nhiêu chữ số. Program Dem_chu_cai_so; Uses crt; Var I,dem_chu,dem_so: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); Dem_chu:=0; dem_so:=0; For i:=1 to length(S) do If S[i] in [‘A’..’Z’]+[‘a’..’z’] then Dem_chu:=dem_chu+1 else Dem_so:=dem_so+1; Writeln(‘Trong xau S co tat ca’,dem_chu,’chu cai’); Writeln(‘Trong xau S co tat ca’,dem_so,’chu so’); End. Bài 4: Nhập vào xâu S1, chuyển đổi chữ hoa thành chữ thường Program Chu_thuong; Uses crt; Var i:integer; S: string; Begin Crlscr; Write(‘Nhap sau S: ‘); Readln(S); For i:=1 to length(S) do If S[i] in [‘A’..’Z’] then S[i]:=CHR(ORD(S[i])+32); Writeln(S); End. Bài 5: Nhâp vào xâu S, chuyển đổi chữ thường thành chữ hoa Program Chu_hoa; Uses crt; Var i: integer; S: string; Begin Clrscr; Write(‘Nhap xau ki tu S: ‘); Readln(S); For i:=1 to length(S) do If S[i] in [‘a’..’z’] then S[i]:=Upcase(S[i]); Writeln(S); End. Bài 6: Nhập vào xâu S. Chuyển kí tự đầu của mỗi từ trong xâu thành chữ hoa Program Chuyen_ki_tu_dau; Uses crt; Var i: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); S[1]:=Upcase(S[1]); For i:=1 to length(S) do If S[i]=#32 then S[i+1]:=Upcase(S[i+1]); Writeln(S); End. Bài 7: Xóa hết khoảng trắng Program Xoa_khoang_trang; Uses crt; Var i: integer; S1,S2: string; Begin Clrscr; Write(‘Nhap xau S1: ‘); Readln(S1); S2:=#32; For i:=1 to length(S) do If S1[i]<>#32 then S2:=S2+S1[i]; Writeln(S); End. Bài 8: Xóa hết kí tự thừa trong xâu Program Xoa_ki_tu_thua; Uses crt; Var i: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); While S[1]=#32 do delete(S,1,1); While S[length(S)]=#32 do delete(S,length(S),1); While POS(#32#32,S)<>0 do delete(S,POS(#32#32,S),1); Writeln(S); End. Bài 9: Xóa hết chữ số trong xâu Program Xoa_chu_so; Uses crt; Var i: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); For i:=length(S) downto 1 do If S[i] in [‘0’..’9’] then Delete(S,i,1); Writeln(‘Xau sau khi xoa: ‘,S); End. Bài 10: Xóa hết chữ cái có trong xâu Program Xoa_chu_cai; Uses crt; Var i: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); For i:=length(S) downto 1 do If S[i] in [‘a’..’z’]+[‘A’..’Z’] then Delete(S,i,1); Writeln(‘Xau sau khi xoa: ‘,S); End. Bài 12: Nhập vào xâu. In ra xâu đảo theo từ Program Xau_dao_theo_tu; Uses crt; Var S: string; x,y,z: integer; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); Y:=length(S); For z:=length(S) downto 1 do Begin If ((S[y]=#32) and (y=1)) then Begin For x:=y to z do write(S[x]); Z:=y; End; End; End. Bài 13: Đếm số lần xuất hiện của các kí tự trong xâu. Program So_lan_xuat_hien; Uses crt; Var S: string; dem: array[‘A’..’Z’] of integer; i:integer; ch: char; Begin Clrsccr; Write(‘Nhap xâu S: ‘); Readln(S); For ch:=’A’ to ‘Z’ do Dem[ch]:=0; For i:=1 to length(S) do If upcase(S[i]) in [‘A’..’Z’] then Inc(dem[upcase(S[i])]); For ch:=’A’ to ‘Z’ do If dem[ch]<>0 then Writeln(ch,’ ‘,dem[ch]); End. Bài 14: In xâu S1 xuất hiện bao nhiêu lần trong xâu S2 Program S1_xuat_hien; Uses crt; Var i,dem: integer; S1,S2: string; Begin Clrscr; Write(‘Nhap xau S2: ‘); Readln(S2); Write(‘Nhap xau S1: ‘); Readln(S1); Dem:=0; For i:=1 to length(S2) so If S1=copy(S2,i,length(S1)) then Dem:=dem+1; Writeln(‘Chuoi S1 xuất hien’,dem,’lan trong xau S2’); End. Bài 15: Đếm số từ trong xâu Program So_tu; Uses crt; Var i,dem: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); Dem:=0; S:=S+’ ‘; For i:=1 to length(S) do If S[i]=#32 then dem:=dem+1; Writeln(‘Trong xau co tat ca’,dem,’tu’); End. Bài 16: Xóa hết kí tự trùng nhau trong xâu Program Xoa_ki_tu_trung; Uses crt; Var i,j,n: integer; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); N:=length(S); I:=1; While i<n do Begin J:=i+1; While j<=n do Begin If S[i]=S[j] then Begin Delete(S,j,1); N:=n-1; End Else j:=j+1; End; I:=i+1; End; Writeln(‘Xau S moi: ‘,S); End. Bài 17:Nhập xâu St. Xóa một kí tự được nhập từ bàn phím. Program Xoa_ki_tu; Uses crt; Var i: integer K: char; St: string; Begin Clrscr; Write(‘Nhap xau St: ‘); Readln(St); Write(‘Nhap ki tu k: ‘); Readln(k); For i:=1 to length(S) do If St[i]=k then delete(S,I,1); Writeln(‘Xau sau khi xoa: ‘,S); End. Bài 18: Nhập xâu S. Nhập kí tự k. Đếm số lần xuất hiện của k Program Ki_tu_k; Uses crt; Var i: integer; K: char; S: string; Begin Clrscr; Write(‘Nhap xau S: ‘); Readln(S); Dem:=0; For i:=1 to length(S) do If S[i]=k then dem:=dem+1; Writeln(‘Ki tu k xuat hien’,dem,’lan’); End. Bài 19: Xâu đối xứng Program Xau_doi_xung; Uses crt; Var S1,S2: string I: integer; Begin Clrscr; Write(‘Nhap xau S1: ‘); Readln(S1); S2:=#32; For i:=length(S) downto 1 do S2:=S1[i]; If S1=S2 then Writeln(‘Xau nay doi xuat’) else Writeln(‘Xau nay khong doi xung’); End. Bài 21: Đếm xem trong xâu có bao nhiêu nguyen âm Program Nguyen_am; Uses crt; Var dem,i: integer; S: string; Begin Clrscr; Write(‘Nhapxau S: ‘); Readln(S); Dem:=0; For i:=1 to length(S) do If S[i] in [‘A’,’O’,’E’,’U’,’I’,’a’,’o’,’e’,’u’,’i’] then Dem:=dem+1; Writeln(‘Trong xau co tat ca: ‘,dem,’ nguyen am’); End. Tags dấu cách trong pascal kí tự trong pascal Xâu kí tự xóa các ký tự trắng dư thừa trong xâu xóa ký tự trắng trong xâu pascal xóa ký tự trong xâu pascal |