Tải bản đầy đủ (.pdf) (12 trang)

Bài giảng: kiểu dữ liệu xâu ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (216.29 KB, 12 trang )

Bài giảng: kiểu dữ liệu xâu

Giảng viên hướng dẫn: Trần Doãn Vinh.
Sinh viên thực hiện: Lê Văn Đảm.
Lớp: K56A_CNTT
Một số 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ố phần tử trong xâu thường được đánh số là 1 .
 Trong ngôn ngữ Pacal, tham chiếu tới phần tử thường được
viết :
<Tên biến xâu>[chỉ số]
1.Khai báo kiểu dữ liệu xâu
 Để khai báo kiểu dữ liệu xâu, Pascal dùng tên riêng
STRING. Độ dài tối đa của xâu được viết trong [ ] sau từ
khóa STRING . Khai báo như sau :
 VAR <Tên biến > : STRING [độ dài lớn nhất của
xâu];
 Ví dụ: Var hoten : string [25];
 Ta cũng có thể khai báo
 var hoten : string [];
 Khi đó độ dài lớn nhất của xâu được ngầm định là 255.
 Chú ý: Hằng xâu kí tự được đặt trong cặp nháy đơn‘ ’.
2. Các thao tác xử lí xâu
 Tham chiếu tới phần tử của xâu được xác định bởi tên
xâu và chỉ số đặt trong [].
 Các kí tự được đánh số bắt đầu từ 1.Có thể xem xâu


là mảng một chiều mà mỗi phần tử là một kí tự.
 Với dữ liệu kiểu xâu có thế thực hiện phép toán ghép
xâu và phép toán quan hệ
 Phép ghép xâu (kí hiệu là +): ‘lớp’ + ’k56a’ cho xâu
kết quả là: ‘lớp k56a’.
 Các phép so sánh =, <>, <, >, <=, >= Pascal tự động
so sánh lần lượt từ kí tự từ trái sang phải.Ví dụ : ‘AB’ <
‘AC’, ‘ABC’ > ‘ABB’, ‘ABC’ <’ABCD’.
Một số thủ tục chuẩn dùng để xử lí xâu :

 Delete(st, vt, n) : xoá n kí tự của xâu st từ vị trí vt
 Inser(s1, s2, vt) : chèn xâu s1 vào xâu s2 bắt đầu
ở vị trí vt.
 Val(St,x,m) Đổi giá trị xâu St thành số ghi giá trị
vào biến X, nếu không đổi được thì vị trí gây lỗi
ghi trong m, nếu đổi thành công thì m = 0
 Str(X,St) chuyển số X thành xâu kí tự lưu trong
St
Một số hàm chuẩn :
 Copy(St,vt,n) sao chép từ xâu St n kí tự từ vị trí vt .
 Length(s): cho giá trị là độ dài xâu s.
 Pos (s1, s2): cho vị trí xuất hiện đầu tiên của xâu s1 trong
xâu s2.
 Upcase(ch): cho chữ cái viết hoa ứng với chữ cái trong ch
 Pos(S1,S2): tìm vị trí xuất hiện đầu tiên của S1 trong S2 .
 Length(St): cho độ dài xâu St .
 Upcase(ch): cho chữ cái viết hoa tương ứng với chữ
thường trong ch .
 CHR(X): cho kí tự có mã X trong bảng mã ASCII .
 Ord(ch): cho mã của kí tự ch trong bảng mã .

3.Ví dụ

Ví dụ 1:

Viết chương trình nhập tên của hai người từ bàn phím,
đưa ra màn hình tên dài hơn, nếu bằng nhau thì đưa ra xâu
nhập sau
Ví dụ 1
Program vidu1;
User crt;
Var
Xau1, Xau2 : string;
Begin
Clrscr;
Write(‘nhap ho ten thu nhat ’);
Readln(Xau1);
Write(‘nhap ho ten thu hai ’);
Readln(Xau2);
If length(Xau1) > length(Xau2) then write (Xau1)
Else write(Xau2);
readln
End.
Ví dụ 2


Nhập 1 xâu, viết ra màn hình xâu đó
theo thứ tự ngược lại của các ký tự trong
xâu đó.
Ví dụ 2
Program VD3 ;

Uses crt ;
Var
x : String ;
k : Byte ;

Begin
Clrscr ;
Write('Nhap xau : ') ;
Readln(x) ;
For k := length(x) downto 1 do
Write(x[i]) ;
Readln ;
End .
Ví dụ 3:


Viết chương trình nhập xâu từ bàn phím
đưa ra màn hình xâu thu được sau khi đã
loại bỏ các dấu cách.
Ví dụ 3:
Progam VD3;
User crt;
Var
x : string;
i, : byte;

Begin
Write (‘nhap xau ’); readln (x);
For i:=1 to length(x) do
If x[i]= ‘ ’ then delete(x,i,1);

Writeln(‘ xau khi da loai bo dau cach la: ’,x);
readln
End.

×