Caác giá trị string có giá trị bao nhiêu năm 2024
sử dụng string[index] để thao tác với các kí tự của string. vd: string str = "aaa"; str[2] = 'b'; cout << str << endl; //aab
Khuyến cáo: các thao tác với kí tự nằm ngoài string, sẽ không có ảnh hưởng tới string hay các thuộc tính của string, nhưng sẽ gây khó hiểu đối với người sử dụng, app và thậm trí gây crash app. Vì vậy cần phải tránh các thao với các kí tự nằm ngoài length của string. Trong trường hợp này: để chắc chắn rằng không thao tác với kí tự nằm ngoài string, sử dụng hàm at(). string str = "aaa"; //str.at(4) = 'x'; //core dumped str.at(2) = 'x'; cout << str << endl; //"aax" - Tìm kiếm trong stringfind(string/char str, int pos); //tìm kiếm str từ vị trí pos đến hết string find(string/char str); //tìm kiếm str trong string từ vị trí đầu tiên rfind(string/char); //tìm kiếm str trong string từ vị trí cuối đến đầu tiên rfind(string/char, in pos);//tìm str từ vị trí pos đến đầu string Chú ý: hàm find() và rfind() là 2 hàm tìm kiếm ngược nhau. Find() tìm kiếm theo chiều từ đầu chuỗi đến hết chuỗi -> trả về vị trí đầu tiên xuất hiện trong chuỗi. Rfind() tìm kiếm theo chiều từ cuối trở về đầu chuỗi -> trả về vị trí cuối cùng xuất hiện trong chuỗi.
Chú ý: Nếu hàm find(), rfind() không tìm thấy vị trí thỏa mãn, sẽ trả về địa chỉ cuối cùng của bộ nhớ (2^64: FFFF FFFF FFFF FFFF). Nếu một ô nhớ nào đó có giá trị thỏa mãn nhưng không nằm trong length string, thì hàm cũng sẽ không trả về vị trí của giá trị đó. string str = "01234567"; str[10] = 'a'; cout << str.find('a') << endl; // 18446744073709551615 Vậy nên trong trường hợp xét điều kiện tìm kiếm trong string. Cần thêm điều kiện tìm kiếm trong chuỗi.
String::npos : (10):18446744073709551615 = (16):FFFF FFFF FFFF FFFF - Xóa string
- Thay thế chuỗi
- Nối string
Lưu ý: nếu truyền pos lớn hơn str.length() trình biên dịch sẽ báo lỗi.
- So sánh stringHàm compare(): str.compare(s); Trả về giá trị < 0 nếu chuỗi str < s Trả về giá trị > 0 nếu chuỗi str > s Trả về giá trị = 0 nếu hai chuỗi bằng nhau Giải thích: Hàm sẽ so sánh từng kí tự tương đương, dừng lại khi 2 kí tự khác nhau hoặc 2 chuỗi bằng nhau. Giá trị trả về của hàm bằng hiệu của 2 kí tự đầu tiên khác nhau: str[i] - s[i] (str[i], s[i]: hệ 10 của kí tự str[i] và s[i] trong bảng mã ASCII).
- Giảm dung lượng của chuỗishrink_to_fit(): Hàm này làm giảm dung lượng của chuỗi, làm cho nó bằng với kích thước capacity của nó. -> tiết kiệm bộ nhớ. - Hàm trả về kích thước được phân bổ cho chuỗi:capacity(): Trả về kích thước của không gian lưu trữ hiện được phân bổ cho chuỗi, đơn vị: byte. Lưu ý: Hàm capacity() trả về kích thước không gian lưu trữ nên không nhất nhiết kết quả về = với size của string. |