Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Lớp string trong C++ và các ứng dụng

String (chuỗi) là dãy các ký tự. Trong C++, chuỗi có thể định nghĩa theo hai cách:

  • C-style strings: coi chuỗi như mảng ký tự.
  • String Class trong C++ (từ thư viện <string>).

Lớp string lưu chuỗi như mảng ký tự trong bộ nhớ nhưng hiển thị như đối tượng string cho người dùng. C++ cung cấp nhiều phương thức hỗ trợ lớp string, giúp thao tác hiệu quả.

Các ứng dụng phổ biến

1. Kiểm tra chuỗi chỉ chứa chữ số

bool charcheck(string str) {
    int l = str.length();
    for (int i = 0; i < l; i++) {
        if (str.at(i) < '0' || str.at(i) > '9')
            return false;
    }
    return true;
}

2. Thay thế khoảng trắng bằng %20 (URL encoding)

string replaceSpaceWith20(string str) {
    string replaceby = "%20";
    int n = 0;
    while ((n = str.find(" ", n)) != string::npos) {
        str.replace(n, 1, replaceby);
        n += replaceby.length();
    }
    return str;
}

Code hoàn chỉnh

#include <bits/stdc++.h>
using namespace std;

bool charcheck(string str) {
    for (char c : str) {
        if (c < '0' || c > '9') return false;
    }
    return true;
}

string replaceSpaceWith20(string str) {
    string replaceby = "%20";
    size_t pos = 0;
    while ((pos = str.find(" ", pos)) != string::npos) {
        str.replace(pos, 1, replaceby);
        pos += replaceby.length();
    }
    return str;
}

int main() {
    string num = "3452i";
    if (charcheck(num))
        cout << "Chuoi chi chua chu so" << endl;
    else
        cout << "Chuoi chua ky tu khac" << endl;
    
    string url = "google com in";
    cout << replaceSpaceWith20(url) << endl;
    return 0;
}

Kết quả

Chuoi chua ky tu khac
google%20com%20in

Các phương thức hữu ích khác của string

  • length() / size() - độ dài chuỗi
  • at(index) - truy cập ký tự với kiểm tra biên
  • substr(pos, len) - lấy chuỗi con
  • find(str) - tìm chuỗi con
  • replace(pos, len, str) - thay thế
  • append(str) - nối chuỗi
  • erase(pos, len) - xóa phần chuỗi
  • clear() - xóa toàn bộ
  • c_str() - chuyển về C-style string (const char*)