Trong bài viết này, chúng ta sẽ tìm hiểu về kiểu xâu trong lập trình và các thao tác xử lí xâu trong Pascal.
Khái niệm cơ bản về xâu
- Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được coi là một phần tử trong xâu.
- Độ dài của xâu là số lượng kí tự trong xâu.
- Xâu có độ dài bằng 0 được gọi là xâu rỗng.
Mô tả kiểu xâu
Để mô tả một kiểu xâu trong lập trình, chúng ta cần xác định:
- Tên kiểu xâu.
- Cách khai báo biến kiểu xâu.
- Số lượng kí tự kiểu xâu.
- Các phép toán thao tác với xâu.
- Cách tham chiếu tới phần tử của xâu.
Tham chiếu đến phần tử của xâu:
Tên biến xâu[chỉ số]
: Chỉ số được sử dụng để tham chiếu đến phần tử trong xâu.- Ví dụ: Nếu biến
Hoten
lưu trữ xâu ‘Nguyen Le Huyen’, thìHoten[6]
sẽ trả về kí tự thứ 6 trongHoten
.
Dưới đây là cách khai báo kiểu dữ liệu xâu, các thao tác xử lí xâu và một số ví dụ về sử dụng kiểu xâu trong Pascal.
var <tên biến xâu>: string[<độ dài tối đa của xâu>];
Trong đó:
- Tên biến xâu: do người lập trình tự đặt.
var
,string
: từ khóa.- Độ dài tối đa qui định số kí tự tối đa có thể có trong xâu. Nếu không ghi, mặc định là 255 kí tự.
Ví dụ:
var Hoten: string[26];
- Trong mô tả xâu, có thể bỏ qua phần khai báo độ dài, ví dụ:
var Chugiai: string;
. Trong trường hợp này, độ dài lớn nhất của xâu sẽ là 255.
Các thao tác thường được sử dụng với xâu
a. Phép ghép xâu
- Phép ghép xâu (kí hiệu là
+
): Được sử dụng để ghép nhiều xâu thành một xâu duy nhất. - Có thể ghép xâu với hằng và biến xâu.
- Ví dụ:
'Ha' + ' Noi' + ' - ' + 'Viet Nam'
sẽ trả về xâu kết quả là ‘Ha Noi – Viet Nam’.
b. Các phép so sánh xâu
- Các phép so sánh bằng (
=
), khác (<>
), nhỏ hơn (<
), lớn hơn (>
), nhỏ hơn hoặc bằng (<=
), lớn hơn hoặc bằng (>=
) có thứ tự ưu tiên thấp hơn phép ghép xâu. - Khi so sánh hai xâu, áp dụng các quy tắc sau:
- Xâu A lớn hơn xâu B nếu kí tự đầu tiên khác nhau giữa chúng và kí tự đầu tiên trong xâu A có mã ASCII lớn hơn.
- Nếu A và B có độ dài khác nhau và A là đoạn đầu của B, thì A nhỏ hơn B.
- Ví dụ:
'May tinh' < 'May tinh cua toi'
. - Hai xâu được coi là bằng nhau nếu chúng giống nhau hoàn toàn. Ví dụ:
'TIN HOC' = 'TIN HOC'
.
c. Thủ tục xóa n kí tự
- Thực hiện việc xóa n kí tự của xâu st, bắt đầu từ vị trí vt.
- Cú pháp:
delete(st, vt, n)
. - Trong đó:
st
: xâu.vt
: vị trí bắt đầu xóa.n
: số kí tự cần xóa.
- Ví dụ:
Giá trị st Thao tác Kết quả
'Nguyen Van A' delete(st, 8, 3) ?
Bảng 1. Ví dụ về thủ tục xóa n kí tự
d. Thủ tục chèn xâu s1 vào xâu s2
- Thực hiện việc chèn xâu s1 vào xâu s2, bắt đầu từ vị trí vt.
- Cú pháp:
insert(s1, s2, vt)
. - Trong đó:
s1
,s2
: xâu.vt
: vị trí bắt đầu chèn xâu s1.
- Ví dụ:
Giá trị s1 Giá trị s2 Thao tác Kết quả
' PC ' 'IBM486' insert(s1, s2, 4); 'IBM PC 486'
Bảng 2. Ví dụ thủ tục chèn xâu s1 vào xâu s2
e. Hàm tạo xâu
- 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.
- Cú pháp:
copy(s, vt, n)
. - Trong đó:
s
: xâu.vt
: vị trí bắt đầu lấy trong xâu s.n
: số kí từ sẽ lấy.
- Ví dụ:
Giá trị s Biểu thức Kết quả
'Bai hoc thu 9' copy(s, 9, 5); 'thu 9'
Bảng 3. Ví dụ hàm tạo xâu
f. Hàm tính độ dài xâu
- Cho giá trị độ dài xâu s.
- Cú pháp:
length(s)
. - Ví dụ:
Giá trị s Biểu thức Kết quả
'500 ki tu' length(s) 9
Bảng 4. Ví dụ hàm tính độ dài xâu
g. Hàm cho biết vị trí xuất hiện đầu tiên của xâu s1 trong s2
- Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
- Cú pháp:
pos(s1, s2)
. - Ví dụ:
Giá trị s2 Biểu thức Kết quả
'abcdef' pos('cd', s2) 3
Bảng 5. Ví dụ hàm cho biết vị trí xuất hiện đầu tiền của xâu s1 trong xâu s2
h. Hàm chuyển chữ cái thành chữ cái in hoa
- Cho chữ cái viết hoa ứng với chữ cái trong ch.
- Cú pháp:
upcase(ch)
. - Ví dụ:
upcase(a)
sẽ trả về ‘A’,upcase(B)
sẽ trả về ‘B’.
Đó là một số khái niệm cơ bản về kiểu xâu trong Tin Học 11. Hi vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về các khái niệm và thao tác với kiểu xâu trong lập trình.