Bài 12: KIỂU XÂU T11.Giới thiêu về kiểu xâu: a.Khái niệm: -Kiểu dữ liệu xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu.. Số lượng kí tự trong một xâu
Trang 2Bài 12: KIỂU XÂU (T1)
1.Giới thiêu về kiểu xâu:
a.Khái niệm:
-Kiểu dữ liệu xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu Số lượng kí tự trong một xâu được gọi là
độ dài của xâu Xâu có độ dài bằng 0 gọi là xâu rỗng
Ví dụ: Các xâu kí tự đơn giản
‘Lop 11A1’ ‘TRUONG TRAN HUNG
DAO’
-Có thể xem xâu như là mảng một chiều mà mỗi phần tử là một kí tự Các kí tự của xâu được đánh số thứ tự, thường bắt đầu từ 1
Trang 3b.Các quy tắc, cách thức cho phép xác
định kiểu xâu:
Cách khai báo biến kiểu xâu Var S:String[20];
Số lượng các kí tự của xâu ‘Lop 11A1’ có số
lượng kí tự là 8 Các phép toán thao tác với
Cách tham chiếu đến phần
Trang 42.Khai báo:
Var <tên biến>:String[ độ dài lớn nhất của
xâu ];
a.Cú pháp:
-Nếu không ghi rõ độ dài sau tên dành riêng String thì ngầm hiểu độ dài của xâu được khai báo là 255 kí tự
Hoặc
Var <tên biến>:String;
Var Hoten:String[26]
Trong đó:
Hoten:
Ví dụ:
String[26
]:
Là tên biến xâu
Độ dài lớn nhất của xâu Hoten là 26
kí tự
Trang 5b.Cách tham chiếu đến từng phần tử của xâuTên biến xâu[chỉ
số]
S=‘Lop
11A1’
S[7]
=
S[7]=‘A’
3.Các thao tác xử lí
xâu: a.Phép ghép
xâu:
Được sử dụng để ghép nhiều xâu thành một xâu kí hiệu là dấu cộng (+) Có thể thực hiện đối với hằng, biến xâu
Ví dụ: ‘Mang Yang’ + ‘-’ + ‘Gia
Lai’
Kết quả nhận được là xâu: ‘Mang Yang-Gia Lai’
Kết quả ta nhận là gì
Ví dụ:
Trang 6b.Các phép so sánh
xâu:
Ta có những phép so sánh nào đối với
xâu
? Bao gồm: =, <>, <, >, <=, >=, có độ ưu tiên thấp hơn phép ghép xâu và tuân theo hai quy tắc sau:
• Xâu A là lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn
• Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B
Trang 7Ví dụ: Hãy điền các dấu so sánh giữa các
xâu sau đây:
‘Mang
Yang’ ‘Mang Yang Gia Lai’
‘Mang
Yang’ ‘Anh‘Mang Yang’
’
=
<
c.Một số thủ tục và hàm chuẩn
được sử dụng trong kiểu dữ
liệu xâu:
* Thủ tục Delete(st,vt,n) thực hiện việc xóa n
kí tự của biến xâu st bắt đầu từ vị trí vt
Cho giá trị của xâu X là ‘Lop 11A1’, sau thao tác delete(X,4,5) giá trị của X là gì
Giá trị của xâu X là ‘Lop’
Ví dụ:
Trang 8*Thủ tục insert(s1,s2,vt) chèn xâu s1 vào xâu s2 bắt đầu ở vị trí vt
Ví
dụ:
Giá trị của xâu X là ‘Em yeu truong em’, hãy viết thao tác để chèn xâu ‘THPT Tran Hung Dao’ vào sau chữ truong trong xâu X
insert(‘THPT Tran Hung Dao’,X,14);
*Hàm Copy(S,vt,N) tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
Ví dụ: Giá trị của xâu X là ‘May tinh cua toi’, thực hiện thao tác tạo ra một xâu S có giá trị
là ‘May tinh’
S:=Copy(X,1,8)
Trang 9*Hàm Length(S) cho giá trị là độ dài của
Giá trị của xâu X là ‘May tinh’, hãy cho biết kết quả trả về sau khi thực hiện length(X)
Length(X)
=8
*Hàm Pos(s1,s2) cho vị trí xuất hiện đầu tiên
của xâu s1 trong xâu s2
Ví dụ:
Cho s1=‘Gia Lai’; s2=‘Mang Yang Gia
Lai’
Pos(s1,s2)=11
Pos(s1,s2)
=
Trang 10*Hàm upcase(ch) cho chữ cái in hoa ứng với chữ cái trong ch
Ví dụ: Cho xâu S có giá trị là ‘Lop
11a1’
Hãy dùng hàm upcase() để chuyển kí tự ‘a’ trong xâu s sang kí tự ‘A’
Upcase(s[7])=‘
A’
Ví dụ: Sử dụng thủ tục insert(), lập chương
trình để chèn xâu s1=‘ PC ’ vào xâu s2=‘IBM486’ và sau đó in ra màn hình xâu s2
là ‘IBM PC 486’
Trang 11Program insert;
Uses crt;
Var s1,s2:string[30];
Begin
clrscr;
s1:=‘ PC ‘; s2:=‘IBM486’;
insert(s1,s2,4);
writeln(‘xau s2 sau khi chen xau s1 vao la:’);
writeln(s2);
readln;
End