1. string là kiểu dữ liệu mới được định nghĩa sẵn trong C++, nó có nhiều ưu điểm vượt trội và giúp tránh được những phiền phức so với chuỗi kiểu char* của C.
2. Trong C++, bạn vẫn có thể dùng kiểu char* nếu muốn. Có thể chuyển từ kiểu stringsang chuỗi char* bằng phương thức
3. Cần khai báo
4. string có các phép +, += để nối chuỗi thay vì dùng hàm trong thư viện
5. Các hàm trong thư viện
6. Có thể so sánh trực tiếp 2 chuỗi string: ==, !=, >, >=, <, <=. Nguyên tắc so sánh giống hệt như khi dùng hàm
7. Dùng phương thức
Ví dụ:
8. Dùng phép gán ( = ) để gán trực tiếp biến string bằng một chuỗi hoặc một biến string khác mà không cần copy.
9. Biến kiểu string có thể xuất bằng cout<< và nhập đến khi gặp khoảng trắng bằngcin>>.
10. Dùng
Ví dụ:
11. string thực chất là một
12. Dùng phương thức
Ví dụ:
13. Dùng phương thức
14. Dùng phương thức
15. Có thể dùng phương thức
16. Dùng phương thức
17. Dùng phương thức
2. Trong C++, bạn vẫn có thể dùng kiểu char* nếu muốn. Có thể chuyển từ kiểu stringsang chuỗi char* bằng phương thức
c_str()
3. Cần khai báo
#include<string>
để có thể sử dụng đầy đủ tiện ích của string.4. string có các phép +, += để nối chuỗi thay vì dùng hàm trong thư viện
string.h
như kiểu char*5. Các hàm trong thư viện
string.h
(strlen, strcmp, strlwr,... ) sẽ không sử dụng được với string.6. Có thể so sánh trực tiếp 2 chuỗi string: ==, !=, >, >=, <, <=. Nguyên tắc so sánh giống hệt như khi dùng hàm
strcmp()
.7. Dùng phương thức
length()
để lấy độ dài chuỗi, dùng phép lấy chỉ số []
để lấy từng phần tử của chuỗi.Ví dụ:
1 2 3 | string a = "ABCDE" ; cout<< a.length(); cout<< a[2]; |
9. Biến kiểu string có thể xuất bằng cout<< và nhập đến khi gặp khoảng trắng bằngcin>>.
10. Dùng
getline(cin, <tên biến chuỗi>)
để nhập chuỗi có khoảng trắng.Ví dụ:
1 2 3 | string a; getline(cin, a); cout << a; |
11. string thực chất là một
vector<char>
có bổ sung thêm một số phương thức và thuộc tính. Do đó, nó có toàn bộ tính chất của một vector.12. Dùng phương thức
substr(<vị trí>, <số ký tự>)
để lấy chuỗi con.Ví dụ:
1 2 3 | string a = "ABCDEF" ; cout << a.substr(1, 3); //Kết quả: BCD |
13. Dùng phương thức
insert()
để chèn một chuỗi vào giữa chuỗi khác. Có rất nhiều cách để làm điều này:1 2 3 | str.insert( int pos, char * s); //chèn chuỗi kiểu char* vào vị trí pos str.insert( int pos, string s); //chèn chuỗi s vào vị trí pos str.insert( int pos, int n, char ch); //chèn n lần ch vào vị trí pos |
14. Dùng phương thức
erase()
để xóa một phần chuỗi.1 2 | str.erase( int pos, int n); //xóa n ký tự từ vị trí pos str.erase( int pos); //xóa từ vị trí pos đến cuối chuỗi |
15. Có thể dùng phương thức
compare()
để so sánh 2 chuỗi nếu không muốn dùng các toán tử quan hệ.1 2 3 4 5 6 | int compare( const string& str) const ; int compare( const char * s) const ; int compare( size_t pos1, size_t n1, const string& str) const ; int compare( size_t pos1, size_t n1, const char * s) const ; int compare( size_t pos1, size_t n1, const string& str, size_t pos2, size_t n2) const ; int compare( size_t pos1, size_t n1, const char * s, size_t n2) const ; |
16. Dùng phương thức
find()
để tìm một chuỗi khác xuất hiện trong chuỗi. Trả về vị trí xuất hiện đầu tiên nếu tìm thấy và -1 nếu không tìm thấy. 1 2 3 | str.find( int ch, int pos = 0); //tìm ký tự ch kể từ pos đến cuối str.find( char *s, int pos = 0); //tìm chuỗi kiểu char* từ pos đến cuối str.find(string& s, int pos = 0); //tìm chuỗi s kể từ pos đến cuối |
17. Dùng phương thức
replace()
để thay thế một đoạn con trong chuỗi ban đầu.1 2 3 | str.replace( int pos, int nchar, char *s); str.replace( int pos, int nchar, string s); str.replace( int pos, int nchar, int n, int ch); |
Nhận xét
Đăng nhận xét