Chuỗi. Tổng quan

Chuỗi là một danh sách (hoặc dãy) các ký tự theo một thứ tự cụ thể. Toàn bộ chuỗi ký tự được coi là một thực thể duy nhất.

Ký tự là bất kỳ thứ gì bạn có thể nhập trên bàn phím bằng một lần nhấn phím (chữ cái, số, dấu gạch chéo ngược hoặc một số ký tự khác).
Các chuỗi có thể có khoảng trắng: "Xin chào thế giới!".
Chuỗi rỗng là chuỗi có 0 ký tự.
Pascal nhận ra mọi thứ được viết bằng dấu nháy đơn là chuỗi (' ').
Trong Pascal, một chuỗi có kiểu string.

Bạn có thể viết một giá trị mới vào một chuỗi bằng cách sử dụng câu lệnh đầu vào đọc (s); Bạn cũng có thể chỉ cần gán một giá trị chuỗi cho biến, chẳng hạn như   s := 'Python'; Bạn có thể xác định độ dài của chuỗi bằng hàm tích hợp sẵn length n := độ dài


So sánh chuỗi

Các chuỗi có thể được so sánh với nhau giống như các con số. Bạn có thể xác định dòng nào lớn hơn, dòng nào nhỏ hơn.

Khi so sánh các chuỗi, các mã ký tự được so sánh. Có hàng chục, nếu không muốn nói là hàng trăm mã hóa ký tự. Cách dễ nhất để hiểu khái niệm này là hiểu một trong những cách đơn giản nhất, ASCII (đọc tại đây).   ;
Cần phải hiểu rằng trong các bảng mã hiện đại, cả chữ cái tiếng Nga và tiếng Anh đều được sắp xếp theo thứ tự bảng chữ cái, các số cũng đi từ nhỏ hơn đến lớn hơn. 
Ví dụ: trong bảng mã ASCII, mã của chữ cái tiếng Anh 'A' - 65, chữ 'a' - 97, chữ số '0' có mã 48. Các chữ cái tiếng Nga nằm ở phần mở rộng của bảng mã ASCII (các số từ 128 đến 255). Chữ hoa đứng trước (nghĩa là có mã nhỏ hơn) so với chữ thường.
Trong hầu hết các bảng mã được sử dụng, các mẫu đều giống nhau, chữ thường muộn hơn chữ in hoa, số sớm hơn chữ cái và chữ cái tiếng Nga muộn hơn chữ cái tiếng Anh.

Ví dụ: "đầu máy"  < "tàu hơi nước", bởi vì các từ khác nhau ở chữ cái thứ năm và "trong" < "x".

Thật không may, không có chức năng nào trong Pascal cho phép đọc nhiều dòng được phân tách bằng dấu cách từ một dòng. Để làm điều này, bạn phải viết chức năng của riêng mình: vars, w: chuỗi; i, j, ind: số nguyên; a: mảng chuỗi; bắt đầu readln(s); setlength(a, length(s)); tôi := 1; ind := 0; trong khi tôi < chiều dài làm bắt đầu while (i < length(s)) and ('' + s[i] = ' ') do i += 1; j := tôi + 1; w := '' + s[i]; while (j < length(s)) và ('' +s[j] <> ' ') bắt đầu w += s[j]; j += 1; kết thúc; a[ind] := w; ind += 1; tôi := j; kết thúc; ghi(a[0], a[1]); kết thúc.

Kết quả là chúng ta có một mảng các chuỗi.

Các chuỗi có thể được thêm vào với nhau bằng cách sử dụng dấu "+". Thao tác này được gọi là nối chuỗi hoặc nối
Ví dụ:  s := 'Xin chào, '; s1 := 'thế giới'; writeln(s + s1); Màn hình sẽ hiển thị cụm từ "Xin chào thế giới" (không có dấu ngoặc kép).

Chỉ số hàng tham chiếu
Mỗi ký tự của một chuỗi có một số riêng (được gọi là chỉ mục) và việc lập chỉ mục trong ngôn ngữ lập trình Pascal bắt đầu từ một. Tức là ký tự đầu tiên có chỉ số 1, ký tự thứ hai có chỉ số 2, v.v.
Các ký tự chuỗi có thể được truy cập bằng chỉ mục, được chỉ định trong dấu ngoặc vuông s[i].
 
Ví dụ 

Tái bút Nhiều phương thức chuỗi trong PascalABC.NET giả định rằng các chuỗi được lập chỉ mục từ 0. Hiện tại, chúng tôi sẽ không sử dụng các phương thức chuỗi hoạt động với các chỉ mục dựa trên số không. Có những sự thay thế tương đương cho những thứ này bằng các hàm bên ngoài giả định rằng các hàng được lập chỉ mục từ 1. 
 

Chuỗi S H e l l o
Chỉ mục S[1] S[2] S[3] S[4] S[5]
Vì một ký tự có thể được truy cập bằng chỉ mục, bạn có thể sử dụng một vòng lặp biến để lặp qua tất cả các ký tự, điều này sẽ nhận các giá trị chỉ mục có thể. Ví dụ, một chương trình hiển thị tất cả các mã ký tự của chuỗi s sẽ như thế này for i := 1 to length(s) do writeln(s[i], ord(s[i])) Giải thích về chương trình:
1) Hàm length(s) tìm độ dài của một chuỗi. Chỉ số của ký tự đầu tiên là 1 và chỉ số của ký tự cuối cùng là (các) độ dài. Biến vòng lặp i sẽ chỉ nhận các giá trị từ 1 đến (các) độ dài.
2) Trong mỗi dòng, biểu tượng sẽ được hiển thị trước, sau đó là mã của nó, được trả về bởi hàm tích hợp ord()

Phép liệt kê tương tự có thể được viết ngắn hơn: cho c trong s do      writeln(c, ord(c)); Trong đoạn này, tiêu đề vòng lặp lặp qua tất cả các ký tự s, lần lượt đặt chúng vào biến c.

Điểm đặc biệt của Pascal khi làm việc với chuỗi là chuỗi là đối tượng có thể thay đổi. Nói cách khác, chúng ta có thể thay đổi các ký tự riêng lẻ của một chuỗi.
Ví dụ: câu lệnh sau sẽ hoạt động s[5] := 'a'; Bạn cũng có thể soạn một chuỗi mới từ các ký tự có thay đổi theo yêu cầu.
Ví dụ: một chương trình thay thế tất cả các ký tự 'a' thành ký tự 'b' sẽ trông như thế này: đọc (s);     for i := 1 to length(s) do started         nếu s[i] = 'a'thì s[i] := 'b';     kết thúc; writeln(s); Trong ví dụ này, chúng ta lặp qua tất cả các ký tự của chuỗi s. Trong phần thân của vòng lặp, ta kiểm tra giá trị của biến s[i]: nếu ký tự trùng với ký tự 'a' thì ta thay bằng 'b'.