Trang chủ » Bài 13 – Chuỗi
Lập trình C/C++

Bài 13 – Chuỗi

cplusplus

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

// 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>);
// 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:

Hello

Đâ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

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~

Tags

About the author

Võ Hoài Sơn

Tính tình bất định
Chọc vào là bịnh
Rất yêu lập trình
Luôn code hết mình
Mình hiện đang là sinh viên của trường ĐH Khoa học tự nhiên TPHCM. Bản thân rất thích code, kiêm luôn cả mần thơ nên thường hơi hâm hâm dở dở. Ngoài ra chém gió, chém chuối, chém trái cây các kiểu cũng là sở trường của mình. Rất mong được làm quen với các bạn :D

Add Comment