logo

Bài 12. Kiểu xâu

Bài 12. Kiểu xâu

>>> Tham khảo: Sơ đồ tư duy Tin học 11 Bài 12

* Một số khái niệm:

- Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự là một phần tử trong xâu.

- Số lượng kí tự trong 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.

* Để mô tả kiểu xâu 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ố]

- Ví dụ 1: Giả sử biến Hoten lưu trữ hằng xâu 'Nguyen Le Huyen' thì Hoten[6] cho ta kí tự thứ 6 của Hoten

Dưới đây trình bày 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ụ sử dụng kiểu xâu trong Pascal.

1. Khai báo

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 xâu có, nêu không ghi thì ngầm định là 255 kí tự.

Ví dụ 2:

- var Hoten: string[26];

- Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn: var Chugiai: string;

- Khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.

2. Các thao tác trên xâu

a. Phép ghép xâu

- Phép ghép xâu (kí hiệu là cộng).

- Được sử dụng để ghép nhiều xâu thành một.

- Có thể thực hiện phép ghép xâu đối với các hằng và biến xâu.

Ví dụ 3: 'Ha'+ ' Noi' +' - '+'Viet Nam' \(\rightarrow\) Cho xâu kết quả là 'Ha Noi - Viet Nam'.

b. 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ực hiện thấp hơn phép ghép xâu và thực hiện việc so sánh hai xâu theo các 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.

Ví dụ 4: 'May tinh' < 'May tinh cua toi'.

- Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn. 

Ví dụ 5: 'TIN HOC' = 'TIN HOC'.

c. Thủ tục xóa n kí tự

- Thực hiện việc xoá 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ự xóa.​

- Ví dụ 6:

Giải Tin học 11: Bài 12. Kiểu xâu - Chi tiết, hay nhất

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 chèn xâu s1 vào xâu s2, bắt đầu ở 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ụ 7:
 

Giải Tin học 11: Bài 12. Kiểu xâu - Chi tiết, hay nhất (ảnh 2)

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ụ 8:

Giải Tin học 11: Bài 12. Kiểu xâu - Chi tiết, hay nhất (ảnh 3)

Bảng 3. Ví dụ hàm tạo xâu

f. Hàm tính độ dài xâu

- Cho giá trị là độ dài xâu s.

- Cú pháp: length(s)

- Ví dụ 9:
 

Giải Tin học 11: Bài 12. Kiểu xâu - Chi tiết, hay nhất (ảnh 4)

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ụ 10:

Giải Tin học 11: Bài 12. Kiểu xâu - Chi tiết, hay nhất (ảnh 5)


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 cho 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ụ 11: upcase(a) ---> 'A', upcase(B) ---> 'B'