Câu lạc bộ Tin học dành cho học sinh Tiểu học

HỌC C++ 💡 Tiết 7 – CHUỖI KÝ TỰ (STRING) trong C++

Trạng thái

♥ Lượt xem: 13
♥ Lượt phản hồi: 1

Tham gia
28/10/2025
Bài viết
368
Điểm Like
1,748
Điểm Uy tín
364,562
Tí Tinh Tế
Miu Mềm Mại
Rồng Rực Rỡ
Tỵ Tinh Tường
Heo Hiền Hậu
Tuổi Mùi
Phù điêu Hổ
Phù điêu Rồng
Hổ Hào Hiệp
Ngựa Ngộ Nghĩnh
Dê Dịu Dàng
Tích cực hoạt động

🧠 I. Chuỗi là gì?

Chuỗi (String)dãy ký tự — ví dụ: "Xin chao", "Hello World", "C++".
Trong C++, có 2 cách làm việc với chuỗi:
  1. 🔸 Kiểu truyền thống: dùng char[] (chuỗi ký tự kiểu C)
  2. 🔹 Kiểu hiện đại: dùng lớp string (thuộc thư viện <string>)
Ta sẽ học cách hiện đại (string) vì dễ và mạnh hơn.

🧩 II. Khai báo và gán chuỗi

Mã:
#include <iostream>
#include <string>
using namespace std;

int main() {
    string ten = "Quan";
    cout << "Xin chao " << ten << "!" << endl;
    return 0;
}
📤 Kết quả:
Mã:
Xin chao Lorenzo!

✏️ III. Nhập chuỗi từ bàn phím

1️⃣ Nhập một từ:​

Mã:
string ten;
cin >> ten;
❗ Dừng lại khi gặp dấu cách.

2️⃣ Nhập nguyên cả dòng (bao gồm dấu cách):​

Mã:
string cau;
getline(cin, cau);
Ví dụ:
Mã:
cout << "Nhap cau noi cua ban: ";
getline(cin, cau);
cout << "Ban da noi: " << cau;

⚙️ IV. Các thao tác phổ biến với chuỗi

LệnhChức năngVí dụ
s.length()Độ dài chuỗi"hello" → 5
s[0]Lấy ký tự đầu'h'
s + tNối chuỗi"Hi " + "there""Hi there"
s.substr(a, b)Cắt chuỗi từ vị trí a, dài b ký tự
s.find("abc")Tìm vị trí của chuỗi con
s.erase(a, b)Xóa b ký tự từ vị trí a
Ví dụ:
Mã:
string s = "Xin chao ban";
cout << "Do dai: " << s.length() << endl;
cout << "Ky tu dau: " << s[0] << endl;
cout << "Cat chuoi: " << s.substr(4, 4) << endl; // "chao"

🧮 V. Duyệt qua từng ký tự của chuỗi

Mã:
for (int i = 0; i < s.length(); i++) {
    cout << s[i] << " ";
}
Hoặc kiểu hiện đại hơn:
Mã:
for (char c : s) {
    cout << c << " ";
}

🔄 VI. Ví dụ ứng dụng: kiểm tra chuỗi đối xứng (palindrome)

Chuỗi đối xứng là chuỗi đọc xuôi và ngược giống nhau.
Ví dụ: "level", "madam"
Mã:
#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    cout << "Nhap chuoi: ";
    getline(cin, s);

    bool doiXung = true;
    for (int i = 0; i < s.length() / 2; i++) {
        if (s[i] != s[s.length() - 1 - i]) {
            doiXung = false;
            break;
        }
    }

    if (doiXung) cout << "Chuoi doi xung!";
    else cout << "Khong doi xung!";
}
📤 Kết quả:
Mã:
Nhap chuoi: madam
Chuoi doi xung!

🧩 VII. Hình minh họa

Mã:
Chuỗi: "HELLO"
Chỉ số: 0   1   2   3   4
Ký tự:   H   E   L   L   O
📚 s[0] = 'H', s[4] = 'O', s.length() = 5

💪 VIII. Bài tập luyện tập

🧩 Bài 1:​

Nhập 1 chuỗi → in ra độ dài và ký tự đầu tiên, ký tự cuối cùng.

🧩 Bài 2:​

Nhập 2 chuỗi → nối chúng lại và in kết quả.

🧩 Bài 3:​

Nhập 1 câu → đếm xem có bao nhiêu chữ “a”.

🧩 Bài 4 (nâng cao):​

Nhập chuỗi → kiểm tra có phải palindrome hay không.

🌟 Tóm tắt Tiết 7

Kiến thứcVí dụGhi chú
Khai báo chuỗistring s;Dùng <string>
Nhập chuỗigetline(cin, s)Cho phép nhập cả dòng
Nối chuỗis1 + s2
Độ dàis.length()
Truy cập ký tựs[i]
Vòng lặp ký tựfor (char c : s)
 

Trạng thái

♥ Lượt xem: 13
♥ Lượt phản hồi: 1

Trên Bottom