Xâu ký tự (String) trong Pascal
-xâu ký tự được định nghĩa bằng từ
khóa STRING. Xâu ký tự là dữ liệu bao gồm một dãy các ký tự trong bảng mã
ASSCII.
Cách khai báo:
Var ten_xau: STRING[độ dài của
xâu];
hoặc Var ten_xau:string;
ví dụ:
var hoten:string[20];
var hoten:string;
Xâu ký tự trong bộ nhớ nó chiếm số
byte bằng số ký tự cực đại được khai báo cộng với byte đầu tiên chứa số ký tự
hiện có của xâu. Độ dài tối đa của xâu ký tự là 255.
- Cách nhập/xuất: Cách nhập
hay xuất kiểu STRING cũng tương tự như các kiểu dữ liệu khác, ta sử dụng các
thủ tục READ, READLN, hoặc WRITE, WRITELN
Ví dụ:
Readln(hoten);
Writeln(hoten);
-Giá trị gán cho biến kiểu xâu phải được để trong cặp nháy
đơn
Ví dụ
a:=’THCS NQ’;
-Gán giá trị các biến kiểu xâu cho nhau tương tự biến kiểu
khác
Ví dụ:
a1:=’Ngo’; a2:=’Quyen’; a1:=a2; ==> a1 sẽ là Quyen
- Truy cập từng phần tử của xâu ký tự: truy cập tương tự mảng 1 chiều:
thông qua tên biến kiểu STRING và chỉ số của nó
Ví dụ:
a:= 'Truong THCS Ngo Quyen';
write(a[6]);
-> Kết quả: cho ra chữ g.
write(a[8]);
-> Kết quả: cho ra chữ T.
Các thao tác trên xâu ký tự:
1/ Phép cộng xâu:
Ví dụ:
a1:=’Ngo’; a2:=’Quyen’; a=a1 + a2;
-> kết quả a=NgoQuyen
2/ Phép so sánh:
Hai xâu ký tự có thể so sánh với
nhau bằng các phép so sánh =, >, <…
Nguyên tắc so sánh thực hiện như
sau, chúng sẽ đem từng ký tự tương ứng với nhau để so sánh, xâu nào có ký tự có
số thứ tự trong bảng mã ASCII lớn hơn thì xâu đó lớn hơn (kí tự a sẽ nhỏ hơn kí
tự b , a sẽ lớn hơn A)
Hai xâu ký tự được gọi là bằng
nhau khi chúng hoàn toàn giống nhau (có độ dài như nhau).
Ví dụ: ‘abc’ = ‘abc’;
a. Hàm length(s): cho độ dài thực của xâu ký tự s. Tính tất
cả các kí tự, kể cả các kí tự ở đầu, giữa xâu s
ví dụ: s:=’Ngo Quyen’ thì
LENGTH(s) cho bằng 9.
b/ Thủ tục DELETE(s,i, n): xóa n ký tự trong xâu s kể từ vị trí i
Ví dụ: s= ‘nam hoc moi’
Delete(s,5,4) lúc đó st cho ra là ‘nam moi’
c/ Thủ tục INSERT(s1, s, i): Thủ tục cho kết quả bằng cách
chèn xâu s1 vào xâu s tại vị trí i, những ký tự đứng sau i sẽ được dời về phía
sau của xâu ký tự s1.
Ví dụ: s1:=’abc’;
s:=’xyzmn’;
INSERT(s1,s,2) lúc đó s=’xabcyzmn’;
d/ Thủ tục STR(value, s): Thủ tục này thực hiện việc chuyển đối giá trị kiểu
số (value) sang dạng xâu ký tự và gán cho biến t.
Ví dụ: x là một số nguyên có giá trị: x:=68;
STR(x,s) sẽ cho kết quả xâu st là: s=’68’;
e/ Thủ tục VAL(st, value,code) đối một xâu ký tự st sang dạng số
và gán cho biến value, nếu biến đối thành công thì code sẽ nhận giá trị bằng 0.
ngược lại thì cho giá trị khác không
Ví dụ: VAL(‘123’,value, code) lúc
này code sẽ nhận giá trị bằng 0 và value=123
f/ Hàm COPY(s, i, n): sao chép trong xâu s, n ký tự tại vị trí i,
Ví dụ: st=’THCS Ngo Quyen’
COPY(st,3,2) = ‘CS’;
g/ Hàm CONCAT(s1,s2,…,sn): hàm cho ra 1 xâu mới bằng cách nối đuôi các xâu
s1,s2,…,sn lại với nhau.
Ví dụ: CONCAT(‘THCS’,’Ngo‘, ‘Quyen’)
= ‘THCSNgoQuyen’;
h/ Hàm POS(st1,st2): hàm cho ta vị trí tìm thấy đầu tiên của xâu s1
trong xâu s2.
Ví dụ: POS(‘bc’,‘axbcmnabc’) = 3;
j/ Hàm UPCASE(s)--> Đổi toàn bộ xâu s thành In hoa
ví dụ
s=’abcD’; upcase(s)=> S=’ABCD’
k/ Hàm Ord(ch): Cho mã của ký tự ch trong bảng mã ASCII
Ví dụ: ch:='a'; n:= Ord(ch) ==> n= 97 (kí tự a có mã là 97 trong bảng mã ASCII)
l/ Hàm Chr(n): Cho ký tự có mã là n trong bảng mã ASCII
ví dụ: n:=97; x:=Chr(n); ==>x='a' (kí tự có mã 97 trong bảng mã ASCII là a)
Chú ý:
a có mã là 97, A có mã là 65 cách nhau 32 đơn vị
z/ hàm Lowercase(s)==>đổi toàn bộ xâu s thành chữ thường
cungx ddc
Trả lờiXóa