Định nghĩa:
Ngoài việc xử lý các dữ liệu số, người ta còn có thể xử lý
các dữ liệu dạng chữ viết như các vănbản. Tập hợp tất cả ký tự tạo nên các chữ viết
của PASCAL tạo thành một kiểu dữ liệu được định nghĩa sẵn dưới tên chuẩn CHAR.
Trong máy tính, mỗi ký tự được mã hoá bằng 1 byte, do vậy có 28
= 256 ký tự. Mỗi một ký tự có một mã riêng biệt. Bộ mã hay được sử dụng là bộ
mã ASCII, trong đó có 128 mã dùng cho các ký tự cơ bản, còn 128 mã khác dùng
cho các ký tự mở rộng. Một giá trị thuộc kiểu này được biểu diễn bằng cách viết
trong một cặp dấu nháy đơn như:
‘A/
T
Việc sắp xếp trong kiểu Char dựa trên giá trị mã ASCII của các ký
tự này. Các ký tự từ 0 đến 31 là các ký tự điều khiển, dùng để điều khiển các
thiết bị ngoại vi, điều khiển các thủ tục trao đổi thông tin. Các ký tự điều
khiển không hiện lên màn hình và không in ra được.
Cần chú ý vị trí các ký tự thường dùng là các chữ số và chữ cái
trong bảng mã ASCII không liên tục. Các chữ số 0..Q – CÓ mã là 4S-.57- các chữ
cái hoa A..Z có mã là 65..90, các chữ cái thường a..z có mã là 97.. 122. Nằm
xen giữa chúng là một số ký tự khác. Ký tự chữ cái thường có mã ASCII lớn hơn
mã của ký tự hoa tương ứng là 32.
Ví
dụ:
Khi nhận được ký tự số 7 máy tạo ra tiếng chuông (BEL), số 13 (CR:
Carriage Return), số 10 (LF: Line Feed) để điều khiển con trỏ chuyển dòng; số
27 (ESC. thoát khởi lệnh hay chương trình), ký tự số 127 (DEL) dùng điều khiển
xoá….
Các phép toán:
Các phép toán so sánh (quan hệ) thực hiện tương tự như kiểu số
nguyên dựa trên mã ASCII của các ký tự.
Có thể thực hiện các phép toán số học sau khi chuyển đổi kiểu Char
sang kiểu Integer thông qua hàm ORD(ch) sẽ được giới thiệu tiếp ở phần sau.
Các hàm liên quan đến kiểu ký tự:
-
Cho số thứ tự ( chính là giá trị mã) của ký tự trong kiểu: ORD(ch)1 ATI
-
Cho ký tự có mã là một số nguyên n : CHR(n)–hay
dạngkhác là Un
-
Cho ký tự đứng trước ký tự ch: PRE Dịch)
-
Cho ký tự đứng sau ký tự ch: SUCC(ch)
-
Cho ký tự là chữ hoa tương ứng với ký tự ch: UPCASE(ch)
-
Cho ký tự là phím được bấm trên bàn phím: READKEY . Hàm này không có đối số
thuộc unit CRT nên khi sử dụng nó phải khai báo sử dụng unit CRT trước.
Chú
ý:
-
Có sự tương quan:
CHR(ORD(ch))
= chvà ORD(CHR(n)) = n.
PRED(ch)=CHR(ORD(ch)
= 1 ) và SUCC(ch)=CHR(ORD(ch)+l).
-
Biểu thức so sánh vừa nếu ‘A’ < ‘a’ thực chất dựa trên biểu thức 65 < 97
hay
ORD(‘A’)
<ORD(‘a’) .
-
Cần phân biệt chữ số X dưới dạng ‘x’ (kiểu Char) với dạng X (kiểu integer).
Ví
dụ
chữ
số ’6′ có mã 54 hay ORD(’6’) = 54 và 6 = ORD(’6′) – ORD(‘O’) = 54 – 48.
Đọc thêm tại: