Bài 12. Kiểu xâu

Chia sẻ bởi Cao Trung | Ngày 10/05/2019 | 88

Chia sẻ tài liệu: Bài 12. Kiểu xâu thuộc Tin học 11

Nội dung tài liệu:

KIỂU DỮ LIỆU XÂU
Xâu là kiểu dữ liệu chuẫn bao gồm một dãy các ký tự trong bảng mã ASCII có độ dài tối đa là 255 ký tự
1. Khái niệm
1. Khái niệm
2. Định nghĩa kiểu và khai báo biến
Ví dụ:
S1 = “Tin hoc”
S2= “sptk23”
Độ dài xâu là số lượng kí tự trong một xâu.
Độ dài xâu S1 là 7.
Xâu rỗng là xâu có độ dài 0 được biểu diễn là “
KIỂU DỮ LIỆU XÂU
2. Định nghĩa kiểu
và khai báo biến
1. Khái niệm
2. Định nghĩa kiểu và khai báo biến
*. Định nghĩa kiểu
*. Định nghĩa kiểu:
Type Ten_kieu = String[n];
Giải thích:
Tên kiểu: Do người sử dụng tự đặt lấy đúng theo quy định của Turbo pascal
String: là từ khoá để định nghĩa kiểu xâu.
n: là độ dài tối đa của xâu
*. Khai báo biến
*. Khai báo biến:
Sau khi đã định nghĩa kiểu ta có thể khai báo biến
thông qua tên kiểu
KIỂU DỮ LIỆU XÂU
Ví dụ:
Type Hoten = String[30];
St80 = String[80];
Var Name : Hoten;
Line : St80;
St : String;
Khai báo trực tiếp
Var Ten_bien : string[n];
Ví dụ:
Var st1, st2 : string[50];
St3: string;
KIỂU DỮ LIỆU XÂU
Chú ý:
(1). Một biến kiểu string[n] sẽ được cấp phát n+1 byte bộ nhớ, trong đó byte đầu tiên lưu độ dài thực sự của xâu
(2). Có thể sử dụng lệnh read, readln để nhập dữ liệu, lệnh write, writeln để ghi dữ liệu kiểu xâu, cũng có thể sử dụng lệnh gán như các biến khác.
(3). Việc truy xuất từng ký tự của xâu phải thông qua tên biến cùng với chỉ số của nó (chỉ số truy xuất phải đặt trong cặp dấu móc vuông “[…]”)
(4). Xâu không có ký tự nào được gọi là xâu rỗng và được biểu diễn là :”.
KIỂU DỮ LIỆU XÂU
3. Các phép toán trên xâu:
a. Phép nối xâu (“+”):
Giả sử st1, st2 là các xâu khi đó st1+st2 cho ta một xâu bằng cách nối theo thứ tự xâu st1 với xâu st2
S1 = ’Hoa ’
S2 = ’hong’
S1 + S2
Hoa
hong


KIỂU DỮ LIỆU XÂU
b. Phép so sánh xâu:
Hai xâu có độ dài bằng nhau: Lần lượt từng cặp ký tự tương ứng của hai xâu sẽ được so sánh với nhau từ trái qua phải; Nếu gặp cặp ký tự khác nhau đầu tiên thì xâu nào có ký tự lớn hơn là lớn hơn. Nếu mọi cặp ký tự đều giống nhau thì hai xâu bằng nhau.
Ví dụ: A:=‘do bao’;B:=‘do anh’.A>B.
o
a
b
o
d
6
5
4
3
2
1
0
h
n
a
o
d
6
5
4
3
2
1
0
B
A
KIỂU DỮ LIỆU XÂU
Hai xâu có độ dài khác nhau: Lần lượt từng cặp ký tự tương ứng của hai xâu sẽ được so sánh với nhau từ trái sang phải cho đến ký tự cuối cùng của xâu ngắn; Nếu gặp ký tự khác nhau đầu tiên thì xâu nào có ký tự lớn hơn là lớn hơn. Nếu không thì xâu có độ dài lớn hơn là lớn hơn.
Ví dụ: ‘abcde’>’abcd’.
‘abacde’>’abcd’
KIỂU DỮ LIỆU XÂU
4. Các thủ tục và hàm trên xâu kí tự:
a. Các thủ tục:
Ký hiệu:
St, st1, st2: là biến kiểu xâu.
Num: là biến kiểu số nguyên chỉ số ký tự.
Pos: : là biến kiểu số nguyên chỉ vị trí nào đó trong xâu.
Delete(st, pos, num)
Thủ tục này sẽ xóa trong xâu st đi num kí tự bắt đầu từ vị trí pos.
St =’tin hoc’
St =’tin
Delete(St,4,3);
Ví dụ:
ho
c’
KIỂU DỮ LIỆU XÂU
Insert(st2,st1,pos)
Thủ tục này sẽ chèn xâu st2 vào xâu st1 bắt đầu từ vị trí pos.
S2 = ’Abc’
St1 =
Ví dụ:
St1 = ’def’
Insert(St2,St1,1);
Abc
def


Str(value, st)
Trong đó value là một biểu thức số học có thể ghi dưới dạng có quy cách .
Thủ tục này sẽ đổi giá trị của số (value) thành xâu và gán cho biến xâu st.
Ví dụ: str(123.456,st) Khi đó st sẽ có giá trị là : ’123.456’
Val(st,var,code)
Trong đó st là một xâu biểu diễn số.
Var là một biến kiểu số nguyên hay số thực.
Code là biến kiểu số nguyên.
Thủ tục này sẽ đổi xâu st biểu diễn số thành số và gán cho biến var, nếu việc đổi thành công thì biến code có giá trị bằng 0, ngược lại nếu xâu st biểu diễn số bị lỗi thì khi đó var không xác định còn code có giá trị là vị trí lỗi trong biểu diễn số của xâu st.
Ví dụ: st1:=’123.456’;
Val(st1,a,k) Khi đó a sẽ có giá trị là 123.456.
St2:=’12q.456’;
Val(st2,a,k) Khi đó a không có giá trị xác định còn code có giá trị là 3 chính là vị trí của q.
b. Các hàm trên xâu ký tự:
Length(st)
Cho kết quả là độ dài thực sự của xâu st.
S = ’acd5’
Ví dụ:
Length(S)
1
2
3
4
M =
4
Copy(st, pos,num)
Cho kết quả là xâu con của xâu st gồm num ký tự bắt đầu từ vị trí pos
S = ’ hoa hong’
S1 = ’ ’
S1 = copy(st,5,4);
hong
Concat(st1,st2,…,stn) (n > =2)
Cho kết quả là xâu được ghép nối theo thứ tự các xâu st1,st2,…,stn.
Ví dụ: Concat(‘abc’,’de’,’123’) cho kết quả là xâu ‘abcde123’.
Chú ý: Nếu xâu kết quả có độ dài >255 thì máy sẽ báo lỗi.
Pos(st1, st2)
Cho kết quả là vị trí xuất hiện đầu tiên của xâu st1 trong xâu st2. Nếu xâu st1 không có mặt trong xâu st2 thì hàm cho kết quả bằng 0.
S2=’abcde’
M1 = 0
Ví dụ:
M1=pos(‘Cd’,S2);
Cd
1
2
3
4
5
Cd
Cd
Cd
Cd
S2=’abCde’
M2 =
M2=pos(‘Cd’,S2);
Cd
1
2
3
Cd
Cd
5. Các ví dụ:
Viết chương trình đếm số ký tự chữ số trong một xâu ký tự được nhập vào từ bàn phím.
Ví d 1:
Program Dem_ktso;
Uses Crt;
Var St:String;
i,d:Byte;
Begin
Write(‘Nhap xau St: ‘); Readln(St);
For i:=1 to length(St) do
If St[i] IN [‘0’..’9’] Then d:=d+1;
Write(‘So ky tu chu so trong xau: ‘, d);
Readln;
End.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Cao Trung
Dung lượng: | Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)