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ớn nhấ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 CHUA BI CAT’;
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àm Val(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.

THOÁT KHỎI BÌNH LUẬN

Please enter your comment!
Please enter your name here