STRING (XÂU)

 

CHUYÊN ĐỀ C++: XÂU (STRING)

I. Giới thiệu về string trong C++

string là kiểu dữ liệu trong thư viện chuẩn C++ (STD) dùng để xử lý chuỗi ký tự.
Khai báo:

#include <iostream>
#include <string>
using namespace std;

string s = "Hello";

II. Một số thao tác cơ bản

Thao tác

Mô tả

Ví dụ

length() hoặc size()

Lấy độ dài chuỗi

s.length()

empty()

Kiểm tra chuỗi rỗng

s.empty()

clear()

Xóa toàn bộ nội dung chuỗi

s.clear()

push_back(char)

Thêm ký tự vào cuối chuỗi

s.push_back('a')

pop_back()

Xóa ký tự cuối

s.pop_back()

substr(pos, len)

Cắt chuỗi con

s.substr(2, 3)

find(str)

Tìm chuỗi con

s.find("lo")

erase(pos, len)

Xóa ký tự từ vị trí

s.erase(1, 2)

insert(pos, str)

Chèn chuỗi con tại vị trí

s.insert(2, "abc")

compare(str)

So sánh hai chuỗi

s.compare("abc")

Toán tử +

Nối chuỗi

s1 + s2

III. Nhập – Xuất string

string s;
getline(cin, s);  // Nhập cả dòng có khoảng trắng
cout << s << endl;

IV. Duyệt chuỗi

for (int i = 0; i < s.length(); i++) {
    cout << s[i] << " ";
}

// Hoặc dùng for-each
for (char c : s) {
    cout << c << " ";
}

V. Ví dụ minh họa

1. Đảo ngược chuỗi

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main() {
    string s = "abcdef";
    reverse(s.begin(), s.end());
    cout << s; // Output: fedcba
}

2. Đếm số lần xuất hiện của một ký tự

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s = "banana";
    char c = 'a';
    int count = 0;
    for (char x : s) {
        if (x == c) count++;
    }
    cout << "Số lần xuất hiện: " << count;
}

3. Kiểm tra chuỗi đối xứng (palindrome)

#include <iostream>
#include <string>
using namespace std;

bool isPalindrome(string s) {
    int l = 0, r = s.size() - 1;
    while (l < r) {
        if (s[l] != s[r]) return false;
        l++; r--;
    }
    return true;
}

int main() {
    string s = "abba";
    cout << (isPalindrome(s) ? "YES" : "NO");
}

VI. Bài tập luyện tập

1.      1. Nhập vào một chuỗi, đếm số từ trong chuỗi.

2.      2. Viết hàm kiểm tra chuỗi có chứa toàn ký tự số hay không.

3.      3. Tìm từ dài nhất trong chuỗi.

4.      4. Chuẩn hóa chuỗi: loại bỏ khoảng trắng thừa, viết hoa chữ cái đầu mỗi từ.

5.      5. Đếm số lần xuất hiện của một từ trong chuỗi.

Nhận xét