Học Pascal/Kiểu xâu
Giao diện
Khái niệm
[sửa]- Xâu là một dãy các kí tự trong bảng 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 xâu được gọi là độ dài xâu (length).
- Xâu có độ dài bằng không gọi là xâu rỗng, được biểu diễn bằng hai dấu nháy đơn (
''
). Lưu ý: Khoảng trắng (space) cũng được xem là một ký tự. - Tham chiếu đến một phần tử của xâu: <Tên biến xâu>[chỉ số].
- Lưu ý: Có thể xem xâu như mảng một chiều với mỗi phần tử là 1 kí tự (char).
Khai báo
[sửa]Cú pháp:
VAR <tên biến>:string[<độ dài tối đa cho xâu>];
VAR <tên biến>:<kiểu dữ liệu xâu>;
VD:
VAR ten:string[40];
s:string;
st:ansistring;
- Lưu ý: Ta có thể bỏ qua độ dài của xâu khi khai báo. Lúc này độ dài của xâu sẽ được mặc định là giá trị lớn nhất: 255.
Các thao tác xử lý xâu
[sửa]So sánh
[sửa]- Xâu A = B nếu chúng giống nhau hoàn toàn.
- VD:
A:='PASCAL' và B:='PASCAL'
- VD:
- Xâu A > B nếu kí tự khác nhau đầu tiên từ trái sang trong xâu A có mã ASCII lớn hơn kí tự trong xâu B.
- VD:
A:='Wikiquote'và B:='Wikibooks'
- VD:
Ta thấy từ trái sang, 4 kí tự đầu trong xâu A hoàn toàn giống 4 kí tự đầu trong xâu B. Kí tự thứ 5 trong xâu A là 'q' có mã ASCII là 113, lớn hơn kí tự 'b' trong xâu B vì chỉ có mã ASCII là 98. Vậy xâu A>B.
- Xâu B > A nếu xâu A là đoạn đầu của B.
- VD:
B:='Wikibooks'và A:='Wiki'
- VD:
Ghép xâu
[sửa]A | B | A+B | B+A |
---|---|---|---|
'Pascal ' | 'cơ bản' | "Pascal cơ bản' | 'cơ bảnPascal ' |
'Việt' | ' Nam ' | 'Việt Nam ' | ' Nam Việt' |
'Wikibooks' | ' Tủ sách mở cho một thế giới mở' | 'Wikibooks Tủ sách mở cho một thế giới mở' | ' Tủ sách mở cho một thế giới mởWikibooks' |
Các hàm và thủ tục xử lý xâu
[sửa]Thao tác | Ý nghĩa | s:= 'Wikibooks Tủ sách mở cho một thế giới mở' | |
---|---|---|---|
Delete(s,vt,n) | Xoá đi n kí tự của xâu s kể từ kí tự thứ vt | delete(s,20,20) | s='Wikibooks Tủ sách mở' |
Insert(r,s,vt) | Chèn xâu r vào xâu s bắt đầu từ vị trí vt | insert('Việt Nam ',s,10) | s='Wikibooks Việt Nam Tủ sách mở cho một thế giới mở' |
Length(s) | Cho độ dài xâu (số kí tự của xâu) | n:=length(s); | n=40 |
Copy(s,vt,n) | Copy n kí tự của xâu s từ vị trí vt | st:=Copy(s,1,9); | st='Wikibooks' |
Pos(r,s) | Vị trí xuất hiện đầu tiên của r trong s, nếu không xuất hiện thì trả về 0 | vt:=pos('mở',s); | vt=19 |
Upcase(s) | In hoa cả xâu | t:=upcase(s); | t='WIKIBOOKS TỦ SÁCH MỞ CHO MỘT THẾ GIỚI MỞ' |
Upcase(s[i]) | In hoa một kí tự của xâu | t:=upcase(s[length(st)−1]); | t='M' |
Lowercase(s) | Chuyển in hoa thành in thường | st:=lowercase(s); | st='wikibooks tủ sách mở cho một thế giới mở' |
Lowercase(s[i]) | In thường 1 kí tự | st:=lowercase(s[1]); | st='w' |
Concat(S1,..,Sn) | Ghép các xâu từ S1 đến Sn | concat('Wikibooks', ' Tủ sách mở') | 'Wikibooks Tủ sách mở' |
Hàm đặc biệt (s:= '1234'; m = 909) | |||
Str(m,s) | Đổi giá trị kiểu số m sang dạng xâu s | str(m,s); | s='909' |
Val(st,n) | Đổi xâu st thành số n | val(s,m); | n=1234 |
ORD(s) | Lấy mã ASCII của một kí tự | ord('T') | 84 |
CHR(n) | Trả về kí tự tương ứng với mã ASCII | chr(84) | T |