Trong Ngôn Ngữ Lập Trình Pascal, Hai Xâu Kí Tự được Coi Là Bằng ...
Có thể bạn quan tâm
Câu hỏi: Trong ngôn ngữ lập trình Pascal, hai xâu kí tự được coi là bằng nhau khi nào?
Trả lời:
Trong ngôn ngữ lập trình Pascal, hai xâu kí tự được coi là bằng nhau khi chúng giống nhau hoàn toàn (có độ dài như nhau)
Ví dụ : ‘ Ha noi ‘ = ‘ Ha noi ‘
- Để xử lý các chuỗi văn bản, Pascal đưa ra một kiểu dữ liệu mới gọi là xâu ký tự và được định nghĩa bằng từ khóa STRING. Xâu ký tự là dữ liệu bao gồm một dãy các ký tự trong bảng mã ASSCII.
VD:
Ten : String[10] ;
Ho_dem : String[50] ;
Que : String ;
* Cách khai báo
Var ten_xau: STRING[độ dài của xâu];
hoặc Var ten_xau:string;
Xâu ký tự trong bộ nhớ nó chiếm số byte bằng số ký tự cực đại được khai báo cộng với byte đầu tiên chứa số ký tự hiện có của xâu. Độ dài tối đa của xâu ký tự là 255.
- Cách nhập/xuất: Cách đọc hay viết kiểu STRING cũng tương tự như các kiểu dữ liệu khác, ta sử dụng các thủ tục READ, hoặc WRITE.
Ví dụ:
Readln(st);
Writeln(st);
- Truy cập từng phần tử của xâu ký tự: tương tự mảng 1 chiều: thông qua tên biến kiểu STRING và chỉ số của nó
Ví dụ:
St := 'Le Thanh Lam';
write(st[4]);
-> Kết quả: cho ra chữ T.
* Khởi tạo xâu kí tự
Vì những xâu kí tự là những mảng bình thường nên chúng cũng như các mảng khác. Ví dụ, nếu chúng ta muốn khởi tạo một xâu kí tự với những giá trị xác định chúng ta có thể làm điều đó tương tự như với các mảng khác:
char mystring[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
Tuy nhiên, chúng ta có thể khởi tạo giá trị cho một xâu kí tự bằng cách khác: sử dụng các hằng xâu kí tự.
Trong các biểu thức chúng ta đã sử dụng trong các ví dụ trong các chương trước các hằng xâu kí tự để xuất hiện vài lần. Chúng được biểu diễn trong cặp ngoặc kép ("),
Ví dụ:
"the result is: "
là một hằng xâu kí tự chúng ta sử dụng ở một số chỗ.
Không giống như dấu nháy đơn (') cho phép biểu diễn hằng kí tự, cặp ngoặc kép (") là hằng biểu diễn một chuỗi kí tự liên tiếp, và ở cuối chuỗi một kí tự null ('\0') luôn được tự động thêm vào.
Vì vậy chúng ta có thể khởi tạo xâu mystring theo một trong hai cách sau đây:
char mystring [] = { 'H', 'e', 'l', 'l', 'o', '\0' };
char mystring [] = "Hello";
Trong cả hai trường hợp mảng (hay xâu kí tự) mystring được khai báo với kích thước 6 kí tự: 5 kí tự biểu diễn Hello cộng với một kí tự null.
Trước khi tiếp tục, tôi cần phải nhắc nhở bạn rằng việc gán nhiều hằng như việc sử dụng dấu ngoặc kép (") chỉ hợp lệ khi khởi tạo mảng, tức là lúc khai báo mảng. Các biểu thức trong chương trình như:
mystring = "Hello";
mystring[] = "Hello";
là không hợp lệ, cả câu lệnh dưới đây cũng vậy:
mystring = { 'H', 'e', 'l', 'l', 'o', '\0' };
Vậy hãy nhớ: Chúng ta chỉ có thể "gán" nhiều hằng cho một mảng vào lúc khởi tạo nó. Nguyên nhân là một thao tác gán (=) không thể nhận vế trái là cả một mảng mà chỉ có thể nhận một trong những phần tử của nó. Vào thời điểm khởi tạo mảng là một trường hợp đặc biệt, vì nó không thực sự là một lệnh gán mặc dù nó sử dụng dấu bằng (=).
* Các thao tác trên xâu ký tự:
a. Phép cộng xâu:
Ví dụ:
st1:=’Le’; st2:=’Thanh’; St=st1 + st2;
-> KQ: ‘Le Thanh’
b. Phép so sánh:
Hai xâu ký tự có thể so sánh với nhau bằng các phép so sánh =, >, <…
Nguyên tắc so sánh thực hiện như sau, chúng sẽ đem từng ký tự tương ứng với nhau để so sánh, xâu nào có ký tự có số thứ tự trong bảng mã ASCII lớn hơn thì xâu đó lớn hơn.
Hai xâu ký tự được gọi là bằng nhau khi chúng hoàn toàn giống nhau (có độ dài như nhau).
Xâu A lớn hơn xâu B nếu ký tự đầu tiên khác nhau của xâu A có mã ASCII lớn hơn.
Nếu A và B là 2 xâu có độ dài khác nhau và xâu A là đoạn đầu của xâu B thì xâu A nhỏ hơn xâu B.
Ví dụ: ‘FILENAME’ = ’FILENAME ‘
c. Các thủ tục và hàm chuẩn xử lý xâu ký tự
- Hàm length(st): cho độ dài thực của xâu ký tự
ví dụ: st:=’le thanh’ thì LENGTH(st) cho bằng 8.
- Thủ tục DELETE(st, pos, num): xóa num ký tự trong xâu st kể từ vị trí pos
Ví dụ: st= ‘FILENAME’
Delete(st,5,4) lúc đó st cho ra là ‘FILE’
- Thủ tục INSERT(obj, st, pos): Thủ tục cho kết quả bằng cách chèn xâu ký tự có tên là Obj vào xâu st tại vị trí pos, những ký tự đứng sau pos sẽ được dời vềphía sau của xâu ký tự obj.
Ví dụ: obj:= ‘Thanh ‘
st:=’Le Lam’;
INSERT(obj,st,4) lúc đó st=’Le Thanh Lam’;
- Thủ tục STR(value, st): Thủ tục này thực hiện việc chuyển đối giá trị kiểu số(value) sang dạng xâu ký tự và gán cho biến st.
Ví dụ: n là một só nguyên có giá trị: n:=150;
STR(n:5,st) sẽ cho kết quả xâu st là: st=’ 150’;
- Thủ tục VAL(st, value,code) đối một xâu ký tự st sang dạng số và gán cho biến value, nếu biến đối thành công thì code sẽ nhận giá trị bằng 0. ngược lại thì cho giá trị khác không
Ví dụ: VAL(‘123’,value,code) lúc này code sẽ nhận giá trị bằng 0 và value=123
- Hàm COPY(st, pos, num): sao chép trong xâu st, num ký tự tại vị trí pos,
Ví dụ: st=’Le Thanh Lam’
COPY(st,4,5) = ‘Thanh’;
- Hàm CONCAT(s1,s2,…,sn): hàm cho ra 1 xâu mới bằng cách nối đuôi các xâu s1,s2,…,sn lại với nhau.
Ví dụ: CONCAT(‘Le ’,’Thanh ‘, ‘Lam’) = ‘Le Thanh Lam’;
- Hàm POS(st1,st2): hàm cho tavị trí tìm thấy đầu tiên của xâu s1 trong xâu s2.
Ví dụ: POS(‘Lam’,‘Le Thanh Lam’) = 10;
- Hàm Length(st): cho kết quả là một số nguyên chỉ chiều dài của chuỗi st.
ví dụ: lenght('PASCAL') --> 6
- Hàm UPCASE(Ký_tự)--> Đổi Ký_tự thành "KÝ_TỰ" in hoa
Mục lục nội dung 6. Truy xuất từng ký tự trong chuỗi6. Truy xuất từng ký tự trong chuỗi
Có thể kết hợp dùng vòng lặp truy xuất các ký tự trong chuỗi.
Ví dụ: In ra các ký tự của chuỗi st[i] ra màn hình theo từng dòng
st:='PASCAL';
for i:=1 to 6 do writeln(st[i]);
Từ khóa » độ Dài Của Xâu được Tính Dựa Vào
-
Tin Học 11 Bài 12: Kiểu Xâu - HOC247
-
Bài 12: Kiểu Xâu - Tìm đáp án, Giải Bài Tập, để Học Tốt
-
Lý Thuyết: Kiểu Xâu Trang 68 SGK Tin Học 11
-
Giải Bài Tập Tin Học 11 - Bài 12: Kiểu Xâu
-
So Sánh Xâu
-
Giải Tin Học 11: Bài 12. Kiểu Xâu - Chi Tiết, Hay Nhất - Toploigiai
-
Chuyên đề Xâu Kí Tự - Tài Liệu Text - 123doc
-
SÁNG KIẾN KINH NGHIỆM TIN 11 CHUYÊN đề Về Xâu Kí Tự - 123doc
-
Bài 12. Kiểu Xâu - Tin Học 11 - Nguyễn Thị Tố Châu
-
Buổi 1,2,3 XÂU KÍ TỰ
-
Bài 12. Kiểu Xâu Bai 12 Doc - Nslide
-
Một Số Bài Toán Quy Hoạch động điển Hình - VNOI
-
Viết Phương Trình Nhập Vào Một Xâu Từ Bàn Phím đưa Ra Màn Hình ...