Xóa ký tự trắng trong xâu pascal

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.

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

  • Xóa ký tự trắng trong xâu pascal
    Xóa ký tự trắng trong xâu pascal

    Viết chương trình xóa kí tự trắng thừa trong văn bản bằng Pascal

    27 Tháng Mười Một, 2022

  • Xóa ký tự trắng trong xâu pascal
    Xóa ký tự trắng trong xâu pascal

    Sắp xếp mảng 1 chiều có điều kiện trong Pascal

    23 Tháng Mười Một, 2022

  • Seri 100 bài tập Pascal nâng cao – CHƯƠNG IX : CHUYÊN ĐỀ CHỮ SỐ, HỆ CƠ SỐ

    9 Tháng Mười, 2022

Video hướng dẫn xóa ký tự trắng trong xâu pascal

Hướng dẫn xóa ký tự trong xâu pascal

Bà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 Pascal

Mì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:

  • delete(s,k,m): xóa m kí tự của xâu s tính từ vị trí k
  • Pos(s,st): Cho vị trí đầu tiên tìm thấy chuỗi s trong chuỗi st, cho kết quả 0 nếu không tìm thấy

Xóa ký tự trắng trong xâu pascal
Xóa ký tự trắng trong xâu pascal

Cách làm:

  • Xóa các kí tự trắng thừa ở đầu
  • Xóa các kí tự trắng thừa ở cuối
  • Tìm xem trong xâu có hai kí tự trắng liền nhau hay không (dùng hàm pos()) nếu có xóa bớt 1 kí tự

Code xóa khoảng trắng thừa của một xâu trong Pascal

Tổng hợp thêm bài tập về xâu trong pascal

Bà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