C++ là một ngôn ngữ lập trình phổ biến, sử dụng kiểu dữ liệu tĩnh và hỗ trợ nhiều phương pháp lập trình. Chuỗi trong C++ phức tạp hơn nhiều so với chuỗi trong Pascal. Để hiểu rõ hơn về chuỗi (string) trong C++, mời bạn đọc tham khảo bài viết dưới đây của chúng tôi.
Khái quát về chuỗi (string) trong C++
Có hai cách biểu diễn chuỗi trong C++ như sau:
- Chuỗi kiểu C-Style.
- Sử dụng lớp String trong C++ chuẩn.
Để hiểu chi tiết về mỗi kiểu biểu diễn chuỗi trong C++, bạn đọc có thể tham khảo bài viết dưới đây từ Tamienphi.vn.
Chuỗi kiểu C-Style
Chuỗi kiểu C-Style bắt nguồn từ ngôn ngữ C và vẫn được hỗ trợ trong C++. Chuỗi này là một mảng các ký tự kết thúc bằng ký tự null '\0'. Chuỗi null kết thúc chứa các ký tự tiếp theo là một null.
Một ví dụ minh họa khai báo và khởi tạo chuỗi 'Xin chào'. Để giữ ký tự null ở cuối mảng, kích thước của mảng ký tự chứa chuỗi phải lớn hơn số lượng các ký tự trong từ khóa 'Xin chào':
char greeting[6] = {'X', 'i', 'n', ' ', 'c', 'h', 'à', 'o', '\0'};
Nếu thực hiện đúng theo quy tắc khởi tạo, bạn có thể viết lệnh trên như sau:
char greeting[] = 'Xin chào';
Dưới đây là biểu diễn về bộ nhớ cho chuỗi trên trong C/C++:
Trong thực tế, không cần phải đặt ký tự null ở cuối của hằng chuỗi (string constant). Trình biên dịch C sẽ tự động thêm '\0' vào cuối chuỗi khi khởi tạo nó.
Ví dụ: Dưới đây là một ví dụ về việc in một chuỗi:
Sau khi mã được biên dịch và thực thi, kết quả trả về như sau:
Tin nhắn chào: Xin chào
C++ cung cấp một loạt các hàm để thao tác với chuỗi kết thúc bằng null như sau:
Ví dụ dưới đây minh họa cách sử dụng một số hàm đó:
Sau khi đoạn mã trên được biên dịch và thực thi, kết quả sẽ như sau:
Lớp Chuỗi trong C++
Thư viện chuẩn C++ cung cấp lớp Chuỗi hỗ trợ tất cả các tính năng đã được đề cập ở trên, và còn được bổ sung thêm nhiều hàm khác.
Hãy xem ví dụ dưới đây để hiểu rõ hơn về lớp Chuỗi trong C++:
Sau khi đoạn mã trên được biên dịch và thực thi, kết quả sẽ như sau:
Ở đây, Mytour đã giới thiệu tổng quan về chuỗi (string) trong C++ cho bạn. Hi vọng bài viết này cung cấp thêm thông tin hữu ích về ngôn ngữ lập trình phổ biến hiện nay.