4.3.8 Chuỗi con (Substring)

Tất cả các hoạt động chuỗi chúng tôi đã giới thiệu cho các bạn từ trước đến giờ tham chiếu đến toàn bộ chuỗi. Các chuỗi cho bản thân chúng có thể được xử lý một cách chính xác hơn khi chỉ lựa chọn một phần của chúng để xử lý. Một phần của một chuỗi được gọi là một chuỗi con.

Nếu chúng ta muốn tạo một chuỗi mới gồm các ký tự lấy từ một chuỗi con khác, chúng ta có thể sử dụng một hàm thành viên gọi là substr, dạng prototype đơn giản hóa, không chính thức của nó trông như sau:

newstr = oldstr.substr (substring_start_position, lenght_of_substring)

Các chuỗi con của bất kỳ chuỗi nào được xác định bởi hai “tọa độ”: nơi mà chuỗi con bắt đầu (được xác định bởi tham số substring_start_position) và chiều dài của nó (được xác định bởi tham số length_of_substring).

Lưu ý rằng các ký tự trong một chuỗi được đánh số, và ký tự đầu tiên là số 0. Vì vậy, nếu một chuỗi chứa n ký tự, số cuối cùng là (n – 1).

Cả hai tham số đều có các giá trị mặc định. Điều này cho phép chúng ta sử dụng hàm một cách linh hoạt hơn. Vì thế:

  • s.substr (1,2) mô tả một chuỗi con của chuỗi s, bắt đầu từ ký tự thứ hai của nó và kết thúc ở ký tự thứ ba của nó (bao gồm cả ký tự thứ 3 luôn)
  • s.substr (1) mô tả một chuỗi con bắt đầu từ ký tự thứ hai của chuỗi s và chứa tất cả các ký tự còn lại của s. Tham số length_of_substring bị bỏ qua có nghĩa là mặc định bao gồm tất cả các ký tự còn lại trong chuỗi s
  • s.substr () chỉ là một bản sao của toàn bộ chuỗi s (tham số substring_start_position mặc định là 0)

Hãy xem ví dụ sau →

Chương trình sẽ xuất ra màn hình là : BEFABCDEF.

Và bây giờ chú ý, bởi vì điều này là rất quan trọng: nhận được một chuỗi con đòi hỏi bạn phải chính xác. Bạn không được lấy một chuỗi con không hoàn toàn khớp với chuỗi gốc (ví dụ: bắt đầu bên cạnh ký tự kết thúc của chuỗi gốc). Làm điều này sẽ khiến chỉ thị của bạn bị từ chối, và chúng tôi gọi là ngoại lệ.