- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Bài 5: Xâu ký tự (String) trong Pascal



Xâu là gì? Để xử lý các chuỗi văn bản, Pascal đưa ra một kiểu dữ liệu mới gọi là xâu ký tự và đượ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: STRING[độ dài của xâu];

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 đọc hay viế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, hoặc WRITE.
Ví dụ:
Readln(st);
Writeln(st);

- Truy cập từng phần tử của xâu ký tự: 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ụ:
St := 'Le Thanh Lam';
write(st[4]);
-> 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ụ:
st1:=’Le’; st2:=’Thanh’; St=st1 + st2; 
-> KQ: ‘Le Thanh’

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.
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ụ: ‘FILENAME’ = ’FILENAME ‘

3/ Các thủ tục và hàm chuẩn xử lý xâu ký tự
a. Hàm length(st): cho độ dài thực của xâu ký tự
ví dụ: st:=’le thanh’ thì LENGTH(st) cho bằng 8.

b/ Thủ tục DELETE(st, pos, num): xóa num ký tự trong xâu st kể từ vị trí pos
Ví dụ: st= ‘FILENAME’
Delete(st,5,4) lúc đó st cho ra là ‘FILE’

c/ Thủ tục INSERT(obj, st, pos): Thủ tục cho kết quả bằng cách chèn xâu ký tự có tên là Obj vàoxâu st tại vị trí pos, những ký tự đứng sau pos sẽ được dời vềphía sau của xâu ký tự obj.
Ví dụ: obj:= ‘Thanh ‘
st:=’Le Lam’;
INSERT(obj,st,4) lúc đó st=’Le Thanh Lam’;

d/ Thủ tục STR(value, st): 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 st.
Ví dụ: n là một só nguyên có giá trị: n:=150;
STR(n:5,st) sẽ cho kết quả xâu st là: st=’ 150’;

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(st, pos, num): sao chép trong xâu st, num ký tự tại vị trí pos,
Ví dụ: st=’Le Thanh Lam’
COPY(st,4,5) = ‘Thanh’;

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(‘Le ’,’Thanh ‘, ‘Lam’) = ‘Le Thanh Lam’;

h/ Hàm POS(st1,st2): hàm cho tavị trí tìm thấy đầu tiên của xâu s1 trong xâu s2.
Ví dụ: POS(‘Lam’,‘Le Thanh Lam’) = 10;

Sưu tầm và biên tập



chiconghl nói...

nhờ giải thích về ý nghĩa của đoạn lệnh
for i:=1 to length(s) do
A[s[i]]:=A[s[i]]+1;


16:06 Ngày 04 tháng 08 năm 2012
TÌNH Bạn nói...

câu này mình thấy wen wen !!


09:28 Ngày 11 tháng 11 năm 2012
Nặc danh nói...

mình không hiểu lắm câu lệnh val('123',value,code)


13:29 Ngày 23 tháng 11 năm 2012
thanh vũ nói...

du ma djt loz me kho vaj lon du ma.


07:05 Ngày 07 tháng 12 năm 2012
Nặc danh nói...

Xau ki tu voi minh la mot bai kho


21:02 Ngày 15 tháng 12 năm 2012
Thu Nguyen Vo Anh nói...

cach dao chu phai lm sao day?giup minh vs!!!!!!!!!


09:18 Ngày 20 tháng 01 năm 2013
Nặc danh nói...

Ban thu downto chua? Minh nghi vay thoi. Chua chac lam ban a!


21:48 Ngày 31 tháng 01 năm 2013
Nặc danh nói...

Minh vua thu xong. Downto duoc ma! Thanks nhieu.


21:53 Ngày 31 tháng 01 năm 2013
Nặc danh nói...

tôi kô hiểu lắm về pascal mọi người giúp tôi với


15:43 Ngày 20 tháng 03 năm 2013
Nặc danh nói...

ai giỏi về pascal thì gọi cho tôi nha
01629073134
xin cảm ơn mọi người trước


15:44 Ngày 20 tháng 03 năm 2013
Trần Văn Tiệp nói...

nếu mảng là xâu kí tự thì a[0] chứa cái gì trong pascal


09:18 Ngày 26 tháng 03 năm 2013
Dai Hoang nói...

ai ranh? k??? lam gjup may bai tap nay voi... dc thj pm , toi up len cho lm jup/ caj nha... tks trk.>>>


13:56 Ngày 22 tháng 05 năm 2013
Nặc danh nói...

lam sao de lay chu dau cua mot xau roi đem dò voi mot mit xau khac???Ban nao biet thi giup mih vs!!!!


21:40 Ngày 16 tháng 07 năm 2013
Nặc danh nói...

mk cg phai cong nhan la xau kho that! @_@


14:33 Ngày 10 tháng 02 năm 2014
Nặc danh nói...

mình cũng khá hiểu bài này nhưng không biết admin đã bỏ blog này chưa


15:22 Ngày 10 tháng 04 năm 2014

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.