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).
Chữ đậm''Chữ xiên'''==Khai báo== 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 2600.
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 |