Cho xâu ký tự S được nhập từ bàn phím, hãy tách xâu S thành 2 xâu tương ứng.. Xóa tất cả các kí tự cách không cần thiết.[r]
Trang 1KIỂU XÂU KÍ TỰ
1 Khái niệm xâu kí tự
- Xâu kí tự là dãy các kí tự: chữ, số, kí tự đặc biệt và dấu cách Một xâu không quá 255 kí tự
Ví dụ:
S = ‘Xuan Binh Than 2016’
S1 = ‘’ (Xâu rỗng)
2 Cách khai báo xâu
Var <tên biến xâu>:String[độ dài lớn nhất];
Ví dụ: Var s:string[30];
- Lưu ý: Khi khai báo xâu, nếu không có độ dài lớn nhất của xâu thì ngầm địch độ dài lớn nhất là 255
VD:
Var s:string;
Begin
S:=’Xuan 2016’;
End;
- Truy xuất đến từng kí tự của xâu: tên biến xâu[vị trí]
VD:
S[4]=’n’
S[8]=’1’
Trang 23 Các thao tác xử lý xâu
- Phép ghép xâu: (+) dùng để nối nhiều xâu thành một xâu
VD:
S1:=’Xuan’;
S2:=’2016’;
S:=s1 + ‘ ’ + s2; {S=’Xuan 2016’}
- Phép so sánh xâu:
+ Xâu A được gọi là bằng xâu B nếu chúng giống y hệt nhau;
VD: ‘Tin hoc’ = ‘Tin hoc’
+ Xâu A được gọi là lớn hơn xâu B nếu kí tự đầu tiên khác nhau, của xâu
A có mã ASCII lớn hơn của xâu B
Ví dụ:
A= ‘Hoan’;
B= ‘Ha’;
A>B
VD2:
A= ‘Anh’;
B= ‘Em’;
B>A
VD3:
A= ‘Hoang’;
B= ‘Hoa’;
A>B
Trang 34 Các hàm và thủ tục liên quan đến xâu
* Hàm:
- Hàm Length(s): Cho độ dài (số kí tự) của xâu s.
VD:
S:= ‘Xuan 2016’;
N:=length(s); {n = 9}
- Hàm Copy(s,vt,n): Dùng để sao chép n kí tự của xâu s bắt đầu từ vị trí vt.
VD:
S:= ‘Xuan Binh Than 2016’;
X:= copy(s,6,9); {x = ‘Binh Than’}
S1:=copy(s,8,4); {s1= ‘nh T’}
S2:=copy(x,4,6); {s2 = ‘h Than’}
- Hàm tìm vị trí Pos(s1,s2): Dùng để tìm xem có xâu S1 trong xâu S2 không? Nếu có thì sẽ trả về vị trí của kí tự đầu tiên giống nhau của 2 xâu, nếu không thì trả về 0.
S1:=’Binh’;
X:= ‘than’;
S2:=’Xuan Binh Than 2016’;
N:= pos(s1,s2); {n = 6}
M:= pos(x,s2); {m = 0}
Trang 4* Thủ tục:
- Xóa Delete(s,vt,n): Xóa n kí tự của xâu s bắt đầu từ vị trí vt.
VD:
S:= ‘Xuan Binh Than 2016’;
Delete(s,6,9); {s = ‘Xuan 2016’}
- Chèn Insert(s1,s2,vt): Chèn xâu s1 vào xâu s2 tại vị trí vt của xâu s2.
VD:
S1:= ‘Yeu’;
S2:= ‘Nghia Trang’;
Insert(s1,s2,7); {s2 = ‘Nghia YeuTrang’}
- Đổi số thành xâu str(n,s): Chuyển số n thành xâu gán cho biến s.
VD:
N:=2016;
str(n,s); {s = ‘2016’}
- Chuyển xâu dạng số thành kiểu số Val(s,n,code): Chuyển xâu s thành
số và gán cho biến n, nếu chuyển được code = 0, nếu không chuyển được code<>0, chính là vị trí lỗi.
VD:
S:= ‘2016’;
Val(s,n,code); {n = 2016}
- Hàm chr(n): chuyển về kí tự có mã ASCII tương ứng với số n.
VD:
c:=chr(65); {c=’A’}
Trang 5- Hàm ord(ch): Chuyển kí tự ch thành mã ASCII tương ứng với kí tự ch.
VD:
N:=ord(‘A’); {n = 65}
- Hàm Upcase(ch): Chuyển kí tự ch thành in hoa.
- Cách chuyển kí tự in hoa về in thường: ch:=ord(Chr(ch)+32)
VD: ch=’A’ thì
Ch:=ord(chr(ch)+32); khi đó ch=’a’
Trang 6BT1 Cho xâu ký tự S được nhập từ bàn phím, hãy tách xâu S thành 2 xâu tương ứng Một xâu chỉ chứa số, một xâu chỉ chứa các ký tự
Ví dụ: S = ‘NAM 2017 LA NAM DINH DAU, CON NAM 2016 LA NAM BINH THAN’ KẾT QUẢ: S1 = ‘20172016’; S2 = ‘NAM LA NAM DINH DAU, CON NAM LA NAM BINH THAN’
Yêu cầu: Tính tổng các số trong xâu S ban đầu
BT2: Cho một văn bản, chuyển toàn bộ từ ‘anh’ thành ‘em’
BT3: Chuẩn hóa văn bản, yêu cầu:
1 Xóa tất cả các kí tự cách không cần thiết
2 Chuyển văn bản thành: chữ cái đầu tiên của mỗi từ là in hoa còn lại in thường
Dữ liệu vào từ File Vanban.inp, dữ liệu ra Vanban.out
Ví dụ:
‘ nAM Moi thAnG lOi
moi ’
‘Nam Moi Thang Loi Moi’
BT4: Đếm số lần xuất hiện các từ trong xâu? Chỉ đến các từ xuất hiện 2 lần trở lên!
nam moi 2016 la mot nam hua hen
thanh cong, nam hi vong vao CLB
Tin hoc Tin hoc la mon hoc ren
luyen tu duy thuat toan
nam xuat hien 3 lan
la xuat hien 2 lan Tin xuat hien 2 lan hoc xuat hien 3 lan