BÀI 12: KIỂU XÂU
1. Khái niệm
- Xâu là một dãy 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 của xâu .
- Xâu có độ dài bằng 0 gọi là xâu rỗng.
- Tham chiếu tới phần tử trong xâu được xác định thông qua chỉ số của phần tử trong xâu.
<Tên biến xâu>[chỉ số]
- Cách khai báo biến xâu:
var <tên biến xâu> : string [độ dài lớnnhất của xâu] ;
- Ví dụ:
- Ten : String[10] ;
- Ho_dem : String[50] ;
- Que : String ;
* Chú ý:
- Nếu không khai báo độ dài tối đa cho biến xâu kí tự thì độ dài ngầm định của xâu là 255 .
- Hằng xâu kí tự được đặt trong cặp nháy đơn .
2. Các thao tác xử lí xâu
- Phép ghép xâu: Kí hiệu là dấu cộng (+)
Ví dụ: Ha+ Noi + + Viet Nam => cho kết quả là Ha Noi Viet Nam
- Phép so sánh: <, <=, >, >=, = , <>.
- Xâu A là lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn
- Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.
- Hai xâu được coi là bằng nhau nếu chúng hoàn toàn giống nhau.
- Ví dụ:
- (ABC=ABC).
- (ABCDEF<ABCFGH).
- (ABC<ABCDEF).
- Một số thủ tục chuẩn dùng để xử lí xâu:
- Hàm Delete(St,vt,n) Xoá n kí tự của xâu st bắt đầu từ vị trí vt.Ví dụ:
Var St: String[20];
Begin
St := CHUOI CHUABICAT;
St := Delete(St,6,5);
Write(St);
End.
- Hàm Insert(S1,S2,vt):Chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt của S2.Ví dụ:
Var St, Obj: String[20];
Begin
St := CHUOI THEM;
Obj := DA ;
Insert(obj,St,7);
Write(St);
End.
- HàmVal(St,x,m): Đổi giá trị xâu St thành số ghi giá trị vào biến X, nến không đổi được thì vị trí gây lỗi ghi trong m, nếu đổi thành công thì m = 0.Ví dụ:
Var St: String[20];
X: Real;
Code: Integer;
Begin
St := 789.789;
Val(St, X, Code);
Writeln(X = ,X, ; Code = , Code);
St := 789A789;
Val(St, X, Code);
Writeln(X = ,X, ; Code = , Code);
End.
- Hàm Str(X, St): Chuyển số X thành xâu kí tự lưu trong St.Ví dụ:
Var St: String[20]; S: Real;
Begin
S := 987987987;
Str(S:9:0,St);
Write(St);
End.
- Hàm Length(St):Cho kết quả là một số nguyên chỉ độ dài của chuỗi (số ký tự của chuỗi).Ví dụ: Để viết một dòng ở giữa màn hình ta làm như sau:
GotoXY((80-Length(st))div 2, 12);
Write(st);
- Hàm Copy(St, Pos, n):Kết quả trả về của hàm là một chuỗi, trích từ chuỗi St, chéptừ ví trí Pos và chép n ký tự. Ví dụ:
Var St, Obj: String[20];
Begin
St := TURBO PASCAL 7.0;
Obj := Copy(st,7,6);
Write(Obj);
End.
- Hàm Concat(St1, St2, St3,Stn):Cho kết quả là một chuỗi mới được ghép từ các chuỗi St1, St2, St3,, Stn theo thứ tự truyền vào hàm. Kết quả này giống như phép cộng chuỗi.
- Hàm Pos(Obj, St):Cho kết quả là một vị trí đầu tiên của Obj trong chuỗi St. Nếu không tìm thấy thì hàm trả về kết quả là 0. Ví dụ:
Var St, Obj: String[20];
Begin
St := TURBO PASCAL 7.0;
Obj := PASCAL;
Write(Pos(Obj, St));
End.
- Hàm Pos(S1, S2): Tìm vị trí xuất hiện đầu tiên của S1 trong S2.
- Hàm Upcase(ch): Cho chữ cái viết hoa tưng ứng với chữ thường trong ch.
|