Xin chào mọi người!
Đến hiện tại, mình cũng đã đi được phân nửa đoạn đường về lập trình cơ bản trong C++ rồi nhỉ. Mình xin cảm ơn các bạn trong suốt thời gian qua đã ủng hộ, theo dõi blog của mình. Mong rằng mọi người sẽ đồng hành cùng Trà chanh số trong suốt quãng thời gian còn lại nhé :)
Những bài trước, lúc mình xuất thông điệp ra màn hình, đi kèm sau cout là 1 dòng chữ nằm trong dấu ngoặc kép () phải không nào? Mình muốn xuất câu “Hello World” ra màn hình, thì mình sử dụng cú pháp cout << “Hello World”;. Hai từ Hello World trong ngoặc kép chính là chuỗi đấy! Vậy nên bài hôm nay mình sẽ nói sâu hơn về Chuỗi trong C++.

1. Khái niệm

Chuỗi trong C++ chính là 1 dãy các kí tự. Nói chính xác hơn, chuỗi chính là 1 mảng các kí tự. Ở những ngôn ngữ cao hơn, chuỗi đã được hỗ trợ thành 1 kiểu dữ liệu. Tuy nhiên trong C++ có hỗ trợ thư viện STL, trong đó có chuỗi.
Để sử dụng được chuỗi, ta cần phải khai báo những thứ sau ở đầu dòng lệnh
Mã nguồn:
1
2
3
4
5
// Khai báo thư viện
#include <string>
 
// Khai báo namespace (nếu cần thiết)
using namespace std;
Để tạo 1 chuỗi:
string <tên chuỗi> (= <giá trị khởi tạo>);
Mã nguồn:
1
2
3
// Ví dụ
string myString;
string thisString = "Hello";
Vậy là mình đã tạo 1 chuỗi rồi đấy! Tương tự, chuỗi cũng có những phép nối chuỗi (khác với C, ta có thể cộng trực tiếp 2 chuỗi bằng dấu +), tách chuỗi, xoá chuỗi, so sánh chuỗi,… Những phép, hàm xử lý chuỗi ấy, các bạn có thể tìm thấy ở đây (mình không tiện nêu ra vì nó có rất nhiều, sẽ làm bài viết dài và loãng).

2. Liên hệ giữa chuỗi và mảng

Như mình đã nói, chuỗi chính là mảng các kí tự, vì vậy nó có những đặc điểm tương tự 1 mảng thông thường. Tuy nhiên chuỗi có 1 điểm đặc biệt đó chính là kí tự kết thúc ‘\0′. Hình minh hoạ dưới đây sẽ nói rõ điều này:
                     
Đây là chuỗi “Hello” mình vừa phân tích thành mảng. Ta đã biết độ dài của chuỗi “Hello” là 5, tuy nhiên số lượng các phần tử trong mảng lại là 6 (điều này rất quan trọng khi về sau bạn cấp phát động mảng chuỗi).
Ký tự ‘\0’ đóng vai trò rất quan trọng trong chuỗi, nó chính là kí tự kết thúc của 1 chuỗi. Điều đó có nghĩa là, nếu bạn khai báo 1 chuỗi như thế này
Mã nguồn:
1
2
string myString = "Hello\0Son";
cout << myString; // Chỉ xuất "Hello"???
Những ký tự nằm sau ‘\0’ sẽ bị lược bỏ đi. Đây cũng chính là cơ chế đếm ký tự, chỉ việc đếm đến khi nào gặp kí tự ‘\0’ thì ngưng 😀
Tất nhiên, ngoài ký tự kết thúc đó ra, còn lại những tính năng khác thì tương tự với mảng. Ta cũng có thể coi chuỗi là 1 con trỏ, và có thể lấy từng kí tự của nó ra, hệt như 1 mảng thông thường :D. Nếu ai chưa học về mảng, xin hãy xem lại 2 bài Mảng trong C++ mình đã viết nhé!
Trên đây là bài viết về chuỗi trong C++. Những bạn nào học từ căn bản lên cao, thì sẽ thấy ở bài này chẳng có gì khó khăn cả đâu 😀 Cảm ơn các bạn đã theo dõi! Hẹn gặp lại~
Axact

Administrator:

Xin chào, tôi là Nguyễn Quý Quang Huy. Tôi 14 tuổi và sinh sống tại Hoài Đức, Hà Nội. Tôi lập ra Rinne-IT Blog này nhằm chia sẻ những kiến thức mình có và những bài viết hay trên mạng do tôi tổng hợp. Blog đang trong giai đoạn phát triển nên nếu có lỗi mong các bạn bỏ qua. Tôi luôn chào đón những ý kiến phát triển từ từ các bạn. Giờ thì hãy khám phá blog của tôi nào ^_^

Bình Luận:

0 bình luận: