Hướng dẫn thao tác string variable.. kiểu dữ liệu string trong C++

Kiểu string có trong thư viện chuẩn (standard template library)của c++ (string # string.h)

1: Các phương thức, phép toán tiện ích của kiểu string.

Để cộng hai chuỗi với nhau, ta sử dụng toán tử + hoặc +=, nhưng để cộng ký tự vào chuỗi thì phải sử dụng cách khác.

Vd:

C++ Code:

 

C++ Code:

Các phép toán so sánh trên chuỗi sử dụng toán tử (==; !=; ……)

C++ Code:

—- phép gán (=);
—-phương thức length();
Ta dùng phương thức này để duyệt từng kí tự của chuỗi
Giả sử như s là biến kiểu string thì s[i] là kí tự thứ i của s sao cho 0<=i<s.length();
<cũng có nghĩa là lấy độ dài của chuỗi s để có thể duyệt đến từng phần tử của nó>

C++ Code:

2: Nhập dữ liệu
Cách nhập một string từ bàn phím
Form:
getline( istream &in, string &str, ‘m’ );

Istream&in: có thể là cin(thường là cin), và trong trường hợp lấy dữ liệu từ file thì là đối tượng khác. Dữ liệu sẽ được ghi vào string str đến khi gặp ký tự kết thúc là ‘m’ (tham số này có thể có hoặc ko). Nếu ko có thì chương trình mặc định là \n. có thể dùng kết hợp toán tử >> để nhập
Vd: getline(cin, str)>> kt;

Trong đó str và kt đã đc khai báo….
Lệnh này yêu cầu đợi nhập từ bàn phím string str và một cái kt nào đó.

C++ Code:

3:: chèn, xóa, lấy chuỗi con
a) lấy chuỗi con:
phương thức substr(int a, int b);
khi sử dụng là str.sub(int a, int b);
kết quả sẽ trả về một chuỗi từ chuỗi str.. sao cho lấy b ký tự kể từ vị trí thứ a.

C++ Code:

b) chèn

chèn một chuỗi vào một chuỗi(tất nhiên chèn một ký tự thì tương đương chuỗi)
để thực hiện thao tác chèn ta dùng phương thức insert(int a, int b, string c)
khi sử dụng ta dùng str.insert(int a, int b, string c);
khi đó mảng str là mảng sẽ được chèn vào còn a là vị trí sẽ đc chèn, b là số lần chèn, c chính là chuỗi dùng để chèn vào a. khi bỏ b đi thì mặc định nó là 1;

C++ Code:

c) xóa
để xóa kí tự trong string str ta dùng phương thức erase(int a, int b);
cách dùng: str.erase(a, b);
khi đó sẽ xóa b kí tự từ vị trí a;

C++ Code:

4) So sánh 2 chuỗi

Như có nói ở phía trên. Để so sánh 2 chuỗi ta có thể dùng các toán tử so sánh ==, !=……..
Nhưng khi so sánh 1 phần nào đó ta dùng phương thức compare
Cấu trúc:
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;

vd:
str.compare(s): hàm này sẽ trả về giá trị =0 hoặc là khác 0
nếu như =0 thì 2 chuỗi này bằng nhau. Nếu ko thì khác nhau.

str.compare ( size_t pos1, size_t n1, s, size_t pos2, size_t n2);

khi này sẽ so sánh chuỗi str với chuỗi s nhưng ko pải so sánh toàn bộ 2 chuỗi mà là so sánh 2 phần của 2 chuỗi.
chuỗi str lấy từ pos1 và lấy n1 ký tự.
chuỗi s lấy từ pos2 và lấy n2 ký tự.

C++ Code:

Các bạn sẽ thắc mắc là nếu như n1!=n2 thì hai chuỗi đc so sánh sẽ khác nhau
Vậy hãy xem kỹ ví dụ trên để hiểu hơn vấn đề này.
// chú ý thêm đó là một mảng ký tự thì gần như tương đương với chuỗi.

5) tìm kiếm và thay thế

– Phương thức tìm kiếm
str.find(char ch, int pos = 0);
str.find(char *s, int pos = 0);
str.find(string& s, int pos = 0);

khi sử dung thì hàm sẽ tìm ký tự (mảng ký tự, chuỗi), ch kể từ vị trí pos. nếu ko có pos thì giá trị mặc định là 0; và tìm kiếm cho đến cuối

-phương thức thay thế replace

Cấu trúc sử dụng:

str.replace(int pos, int nchar, char *s);
str.replace(int pos, int nchar, string s);
str.replace(int pos, int nchar, int n, char ch);

cách dùng
+dùng thay thế một đoạn con trong chuỗi str cho trước
tính từ vị trí pos và thay thế chon char kí tự, bằng chuỗi con s;
+ cách thứ 3 là thay thế bằng n ký tự ch;

C++ Code:
Cám ơn các bạn đã đọc bài viết này, hy vọng nó sẽ giúp ích cho các bạn học lập trình C++.

Nhận xét