Các thao tác xử lý xâu • Phép ghép xâu: Kí hiệu là dấu cộng + được sử dụng để ghép nhiều xâu thành 1... Các thủ tục và hàm chuẩn xử lý xâu THỦ TỤC..[r]
Trang 1Kiểm tra bài cũ
• Câu 1: Viết khai báo trực tiếp biến
mảng 2 chiều.
• Câu 2: Cho mảng số nguyên C,
gồm 8 dòng và 9 cột Viết khai báo cho biến mảng 2 chiều C.
Trang 2Ví dụ 1:
Dữ liệu các phần
tử trong vd 1 là dữ liệu dạng gì? Dữ liệu của các phần
tử trong vd1 là dữ liệu dạng kiểu số
Các phần tử trong vd2 có phải là dữ liệu
không?
Ví dụ 2:
Trang 3Bài 12: KiỂU XÂU
Trang 4Xâu là dãy các kí tự trong bộ mã
ASCII.
• Xâu được tạo thành bởi các kí tự, trong
đó có thể có kí tự trống (dấu cách).
• Mỗi kí tự được gọi là 1 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.
1 Khái niệm
Trang 5• Trong chương trình khi viết 1 xâu kí tự
ta phải viết xâu kí tự đó giữa 2 dấu
nháy đơn.
Ví dụ: 'Tin hoc'
• Khi nhập từ bàn phím 1 xâu, ta gõ các
kí tự thuộc xâu đó (rồi nhấn phím
Enter).
Trang 6T I N H O C
A
Tên xâu: A
Độ dài của xâu: 7
1 2 3 4 5 6 7
H
Tham chiếu tới phần tử thứ i của xâu ta viết
A[i].
Ví dụ
Tham chiếu đến phần tử của xâu Tên biến xâu [chỉ số]
Ví dụ: A[5]: = ‘H’
Trang 7Xâu có 1 kí tự trống được viết như thế nào? Độ
dài bao nhiêu?
Xâu chỉ gồm 1 kí tự trống viết là: ‘ ’
Có độ dài là 1.
Xâu rỗng được viết như thế nào?
Độ dài bao nhiêu?
Để viết xâu rỗng ta viết 2 dâu nháy đơn liền nhau ‘’
Có độ dài là 0
Trang 8
var <tên biến>: string [độ dài lớn nhất của xâu] ;
Ví dụ:
var Hoten: string [26] ;
Trong khai báo xâu có thể bỏ qua phần khai báo
[độ độ dài lớn nhất của xâu] Khi đó nó nhận
giá trị ngầm định là 255;
Ví dụ:
var Chugiai: string;
2 Khai báo
Trang 9Ngoài ra ta có thể sử dụng lệnh gán để
nhập giá trị cho biến xâu.
Tên_biến_xâu:=‘hằng_xâu’;
S := ‘Ha noi’
Writeln(biến xâu);
Vd: Writeln(st);
Nhập 1 xâu từ bàn phím Viết 1 xâu ra màn hình
Readln(biến xâu);
Vd: Readln(st);
Trang 10• Phép ghép xâu:
Kí hiệu là dấu cộng (+) được sử dụng để
ghép nhiều xâu thành 1
S = S1 + S2 + … + Sn
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ụ:
‘Ha’ + ‘ Noi’ + ‘ - ’ + ‘Viet Nam’
Xâu kết quả: ‘Ha Noi - Viet Nam’
3 Các thao tác xử lý xâu
Trang 11Ví dụ: Ghép các xâu sau
Trang 12b Các phép so sánh
• Các phép so sánh : =, <>, <, >, ≤, ≥ trên xâu
được thực hiện theo thứ tự trong bảng mã
ASCII
• So sánh 2 xâu theo quy tắc sau:
* Xâu A = B, nếu chúng giống
‘tin hoc ’
* Xâu A <> xâu B <> ‘tin hoc’
Trang 13* Xâu A > B nếu:
+ Kí tự đầu tiên khác
nhau kể từ trái sang
trong xâu A có mã
ASCII lớn hơn xâu B
+ Xâu B là đoạn đầu của xâu A
‘Anh’
B:=‘may tinh’ < A:=‘may tinh moi’
‘Ba’
<
Xâu có độ dài lớn
hơn có thể là xâu
nhỏ hơn.
A:=‘Ha N o i’ > B:=‘Ha N a m’
Trang 14Ví dụ: So sánh các xâu sau
<
<
<
>
Trang 15Ví dụ:
B1:=‘May Vi Tinh’
C1:=‘Day tot - Hoc’
B2 :=‘May Tinh’
C2:=‘Day tot - Hoc tot’
A1:=‘nguyen van a’ A
2:= ‘Nguyen Van A’
Trang 16c Các thủ tục và hàm chuẩn xử lý xâu
Delete (S, vt, n)
Xóa n kí tự của biến xâu S bắt đầu
từ vị trí vt
S:=‘Song Hong’.
Delete(S, 1, 5) ‘Hong’
Insert (S1, S2, vt)
Chèn xâu S1 vào xâu S2 bắt đầu ở
vị trí vt
S1:=‘Tin ’, S2:=‘Hoc’
Insert(S1, S2 ,1) ‘Tin Hoc’
Delete(S, 6, 4)
Insert(S2, S1 ,1)
‘Song ’
‘HocTin ’
Trang 17HÀM Ý NGHĨA VÍ DỤ
Copy (S, vt, n) Tạo xâu gồm liên tiếp bắt đầu từ vị trí n kí tự
vt của xâu S
S:= ‘Tin Hoc’
Copy(S, 5, 3)
‘Học’
Length (S) Cho giá trị là độ dài
xâu S
Pos (S1, S2)
Cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu
S2.
S1:=‘cd’
S2:=‘abcdef’
Pos (S1, S2) ->3
Upcase (ch) Cho chữ cái in hoa ứng với chữ cái trong ch. Ch:=‘d’Upcase(ch)
‘D’
S:=‘Tin Hoc ’
Length (S) -> 8
Trang 18Ví dụ:
1 Cho S = ‘Mon tin hoc’
Delete(S,4, 4);
2 Cho S = ‘Em yeu truong em’ Hãy viết thao
tác để thêm tên trường em đang học vào sau chữ
3 Cho S = ‘cai xac xinh xinh’ Cho biết giá trị của thao tác pos(‘xinh’, S)?
X =
Pos(‘xinh’,S) = 9
Insert(‘Tran Van Thoi ’, X, 15);
Trang 19Hết
Trang 20Bài 12: kiểu xâu(tiếp theo)