Trình bày các hàm xử lý xâu

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.

     [chỉ số]

- Cách khai báo biến xâu:

     var: 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);
     Var St, Obj: String[20];
     Begin
          St := ‘CHUOI THEM’;
          Obj := ‘DA  ’;
          Insert(obj,St,7);
          Write(St);
     End.
2     Var St, Obj: String[20];
     Begin
          St := ‘CHUOI THEM’;
          Obj := ‘DA  ’;
          Insert(obj,St,7);
          Write(St);
     End.
3

  • Hàm Str(X, St): Chuyển số X thành xâu kí tự lưu trong St. Ví dụ:

     Var St, Obj: String[20];
     Begin
          St := ‘CHUOI THEM’;
          Obj := ‘DA  ’;
          Insert(obj,St,7);
          Write(St);
     End.
4
               Var St, Obj: String[20];
     Begin
          St := ‘CHUOI THEM’;
          Obj := ‘DA  ’;
          Insert(obj,St,7);
          Write(St);
     End.
6
               Var St, Obj: String[20];
     Begin
          St := ‘CHUOI THEM’;
          Obj := ‘DA  ’;
          Insert(obj,St,7);
          Write(St);
     End.
8
               Var  St: String[20];
          X: Real;
          Code: Integer;
     Begin
          St := ‘789.789’;
          
0

  • 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: 

     Var  St: String[20];
          X: Real;
          Code: Integer;
     Begin
          St := ‘789.789’;
          
1
           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: String[20];
          X: Real;
          Code: Integer;
     Begin
          St := ‘789.789’;
          
2

  • 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: String[20];
          X: Real;
          Code: Integer;
     Begin
          St := ‘789.789’;
          
3

  • 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.