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

String at() trong C++


Tóm tắt

Hướng dẫn ngắn này tổng quan về chức năng at() của lớp String C++ nhằm truy xuất chuỗi ký tự từ chuỗi. Trong phần tới, người đọc có thể xem qua các ví dụ lập trình lớp string để hiểu kỹ thao tác của hàm at().

Lớp String

Về mặt lập trình, chuỗi là biểu diễn bằng dấu ngoặc kép, chứa tập hợp các ký tự. Lớp string cũng là một lớp container, có thể lặp qua tất cả ký tự bằng toán tử iterator []. Bên cạnh đó, lớp String xử lý tất cả các thao tác liên quan đến bộ nhớ và kết thúc null. Mọi người có thể thực hiện nhiều thao tác liên quan đến chuỗi bao gồm so sánh, sao chép, nối, tìm kiếm, sắp xếp và nhiều hơn nữa bằng cách tận dụng các hàm thiết yếu của nó, trong đó một phương thức quan trọng là at() dùng để trích xuất ký tự từ vị trí cụ thể trong chuỗi.

Phương thức String.at()

Phương thức at() của lớp String được thiết kế để truy cập một ký tự cụ thể nằm trong chuỗi. Nó tự động kiểm tra xem pos có phải là vị trí hợp lệ của ký tự trong chuỗi cho trước hay không, nếu không nó ném ngoại lệ "out_of_range". Cú pháp sử dụng như sau:

Cú pháp

char& at (size_type id);
const char& at (size_t pos) const;

Chương trình C++ sau minh họa việc sử dụng phương thức at() của lớp String, nơi chương trình trước tiên xác định độ dài chuỗi đầu vào, sau đó phương thức at() truy xuất các ký tự cụ thể từ vị trí cho trước trong chuỗi:

Ví dụ

#include <iostream>
using namespace std;
void retrieveChar(string str) {
    char chr;
    // Tính độ dài chuỗi
    int len = str.length();
    // truy xuất ký tự
    for (int i = 0; i < len; i++) {
        chr = str.at(i);
        cout << chr << " ";
    }
}
int main() {
    retrieveChar("ajaykumar");
    return 0;
}

Như thấy trong mã trên, toàn bộ mã thao tác chuỗi được gói gọn trong phương thức retrieveChar(), sau đó được gọi trong hàm main() để thực thi. Sau khi biên dịch thành công file example.CPP, nó tạo ra kết quả sau mà trong đó các ký tự từ chuỗi đầu vào được truy xuất tuần tự nhờ phương thức at() của lớp String:

a j a y k u m a r

Lưu ý bảo mật

Chuỗi đầu vào từ nhiều nguồn là mối quan tâm đặc biệt của chuyên gia bảo mật vì nó công khai cung cấp phương tiện để thay đổi hành vi mặc định và đầu ra của chương trình诉诸 đến đầu ra độc hại bên ngoài và các chiến thuật hacker mũ đen đặc biệt. Hacker thường khai thác điểm yếu trong biểu diễn chuỗi và gây thiệt hại nghiêm trọng cho chương trình. Vì vậy, khuyến nghị cao đảm bảo các biện pháp và hướng dẫn liên quan đến chuỗi phù hợp trong chương trình để vô hiệu hóa mọi mối đe dọa.

Kết luận

Vậy chúng ta đã đào sâu vào lớp string và phương thức cốt lõi at() cùng với cú pháp sử dụng trong việc truy cập ký tự từ chuỗi theo cách tuần tự trong đoạn mã trên. Cuối cùng, chúng ta có cái nhìn tổng quan về lỗ hổng và biểu diễn yếu của chuỗi thường dẫn đến khai thác như tràn bộ đệm, cross-site scripting, chuỗi định dạng, canonicalization và nhiều lỗi đáng chú ý khác.