Các thủ tục và hàm chuẩn xử lý chuỗi ký tự

Một phần của tài liệu Giáo trình Pascal (Trang 51 - 53)

II. KIểU MảNG, KIểU CHUẩN

c. Các thủ tục và hàm chuẩn xử lý chuỗi ký tự

Chuỗi ký tự đợc dùng khá phổ biến trong lập trình nên Turbo Pascal đã đa sẵn vào một số thủ tục và hàm chuẩn để xử lý chuỗi ký tự.

* Thủ tục xóa DELETE (St, Pos, Num)

ý nghĩa: Xóa khỏi chuỗi St một số ký tự là Num bắt đầu từ vị trí Pos tính từ trái sang. Ví dụ 8.21: VAR st: string [20];

BEGIN

St:= ' Bà BA BáN BáNH Bò '; Writeln (St); DELETE (St, 10, 4); Writeln(St); Readln; END.

Khi chạy chơng trình, ta sẽ thấy trên màn hình: Bà BA BáN BáNH Bò

Bà BA BáN Bò

ý nghĩa: Chèn chuỗi Obj xen vào chuỗi St kể từ vị trí Pos tính từ bên trái. Ví dụ 8.22: VAR st: string [25];

BEGIN

St:= 'Bà BA BáN BáNH Bò'; Writeln (St);

INSERT ( BụNG Bự, St, 6); Writeln(St); Readln; END.

Khi chạy chơng trình, ta sẽ thấy trên màn hình: Bà BA BáN BáNH Bò

Bà BA BụNG Bự BáN BáNH Bò * Thủ tục STR (S [: n[: m]], St)

ý nghĩa: ổi giá trị số S thành chuỗi rồi gán cho St, Giá trị n:m nếu có sẽ là số vị trí và số chữ số thập phân của S. Ví dụ 8.23: VAR S: real; St: string[10]; BEGIN S:= 12345.6718; Writeln(S:5:2); Str(S:6:2:st); Readln; END. Kết quả trên màn hình: 12345.67 {ây là số} 12345.67 {ây là chuỗi} * Thủ tục VAL(St, S, Code)

ý nghĩa: ổi chuỗi số St (biểu thị một số nguyên hoặc số thực) thành số (số nguyên hoặc số thực) và gán giá trị này cho S. Code là số nguyên dùng để phát hiện lỗi: nếu đổi đúng thì Code có giá trị = 0, nếu sai do St không biểu diễn đúng số nguyên hoặc số thực thì Code sẽ nhận giá trị bằng vị trí của ký tự sai trong chuỗi St.

Ví dụ 8.24: VAR St: String[10]; SoX: real; maloi: integer; BEGIN St:= ‘123.456’; VAL(St,SoX,maloi);

Writeln('Số X =, SoX:5:2, và mã lỗi =, maloi); Readln;

St:=‘123.XXX ’;

VAL(St,SoX,maloi);

Writeln('St = 123.XXX không đổi thành số đợc !'); Writeln('Sai lỗi ở vị trí thứ ', maloi); Readln; END.

Khi chạy, ta sẽ thấy trên màn hình: 123.45 và maloi = 0

St = 123.XXX không đổi thành số đợc ! Sai lỗi ở vị trí thứ 5

* Hàm LENGTH (St)

ý nghĩa: Cho kết quả là một số nguyên chỉ độ dài của chuỗi ký tự St.

ể viết 1 chuỗi ký tự ở trung tâm màn hình, ta có thể dùng thủ thuật viết chuỗi là (80 - lenght(st)) div 2 Ví dụ 8.25: USES CRT; VAR St: String[80]; BEGIN ClrScr;

Write(' Nhập vào một câu: '); Readln(St); Gotoxy(80 - Lenght(St)) div2, 12);

Writeln(St);

Readln; END.

* Hàm COPY (St, Pos, Num)

ý nghĩa: Cho kết quả là một chuỗi ký tự mới có đợc bằng cách chép từ chuỗi St, bắt đầu từ vị trí Pos và chép Num ký tự.

Nếu vị trí Pos lớn hơn chiều dài của chuỗi St thì hàm COPY sẽ cho một chuỗi rỗng. Nếu giá trị của vị trí Pos và số ký tự Num (Pos + Num) lớn hơn chiều dài của chuỗi St thì hàm COPY chỉ nhận các ký tự nằm trong chuỗi St.

Ví dụ 8.26: VAR St1, St2: string[25]; BEGIN St1:= ‘UNIVERSITY OF CANTHO: 1966 - 1996’; St2:= COPY (St1, 15, 6); END.

Nh vậy, giá trị của biến St2 bây giờ là CANTHO. * Hàm CONCAT (St1, St2,..., StN)

ý nghĩa: Cho kết quả là một chuỗi mới đợc ghép theo thứ tự từ các chuỗi St1, St2,..., StN. Hàm này giống nh phép cộng các chuỗi. Chuỗi mới cũng sẽ không đợc vợt quá 255 ký tự.

* Hàm POS (Obj, St):

ý nghĩa: Cho kết quả là vị trí đầu tiên của chuỗi Obj trong chuỗi St. Nếu không tìm thấy thì hàm POS cho giá trị 0.

Ví dụ 8.27:

nếu St:= 1234567890, nếu Obj:= 456 thì POS (Obj, St) = 4 còn POS(4X, St)=0

Một phần của tài liệu Giáo trình Pascal (Trang 51 - 53)

Tải bản đầy đủ (DOC)

(82 trang)
w