Hàm xóa xâu(erase) – Hàm tạo và các toán tử – 123docz.net

Một phần của tài liệu BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TÌM HIỂU VỀ MẪU HÀM (FUNCTION TEMPLATE), MẪU LỚP (CLASS TEMPLATE)

II) SƠ LƯỢC VỀ THƯ VIỆN STL

b. Hàm tạo và các toán tử

2.3) Hàm xóa xâu(erase)

Phương thức str.erase(int pos, int n) xóa n ký tự
của chuỗi str kể từ vị trí pos; nếu không quy định giá trị
n thì tất cả các ký tự của str từ vị trí pos trở đi sẽ bị xóa.

// inserting into a string
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int main ()
{

string str=”day cung la xau thu”;

str.erase(0, 3); // ” cung la xau thu”
cout << str << endl;

str.erase(6, 2);

cout << str << endl; // ” cung xau thu”
getchar();

2.4)Hàm thay thế xâu kí tự(replace)

 Hàm thay thế xâu kí tự replace( ) thay thế một đoạn con
trong chuỗi str cho trước (đoạn con kể từ một vị trí pos
và đếm tới nchar ký tự ký tự về phía cuối chuỗi) bởi một
chuỗi s nào đó, hoặc bởi n ký tự ch nào đó. Có nhiều
cách dùng, thứ tự tham số như sau:

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);

 // inserting into a string
 #include <iostream>
 #include <string>
 #include <stdlib.h>
 using namespace std;
 int main ()
 {

 string str=”con cho la con cho con. Con meo ko phai la con
cho”;

 str.replace(4, 3, “CHO”); // “con CHO la con cho con. Con meo
ko phai la con cho”;

 cout << str << endl;

 getchar();

2.5)Hàm lấy xâu con(string)

 Ví dụ

 // inserting into a string

 #include <iostream>
 #include <string>
 #include <stdlib.h>
 using namespace std;
 int main ()
 {

 string str=”ConCho chay qua rao”;

 string str2 = string(str.begin()+0, str.begin()+3); // “Con”

 cout << str2 << endl;

 str2 = string(str.begin()+7, str.begin()+11); // “chay”

 cout << str2 << endl;

2.6)Hàm tìm kiếm xuôi(Find)

 Hàm tìm kiếm xuôi find( ) tìm kiếm xem một ký tự hay
một chuỗi nào đó có xuất hiện trong một chuỗi str cho
trước hay không. Có nhiều cách dùng hàm này:

str.find(int ch, int pos = 0): tìm ký tự ch kể từ vị trí pos
đến cuối chuỗi str

str.find(char *s, int pos = 0): tìm s (mảng ký tự kết thúc
‘\0’) kể từ vị trí pos đến cuối

str.find(string& s, int pos = 0): tìm chuỗi s kể từ vị trí
pos đến cuối chuỗi.

 Nếu không quy định giá trị pos thì hiểu mặc nhiên là 0;
nếu tìm có thì phương thức trả về vị trí xuất hiện đầu
tiên, ngược lại trả về giá trị -1

 Ví dụ:

 // inserting into a string

 #include <iostream>
 #include <string>
 #include <stdlib.h>
 using namespace std;
 int main ()
 {

 string str=”ConCho chay qua rao”;

 cout << str.find(“chay”) << endl; // 7

 cout << (int)str.find(“Chay”) << endl; // -1

2.7)Hàm tìm kiếm ngược(rFind)

 // inserting into a string

 #include <iostream>
 #include <string>
 #include <stdlib.h>
 using namespace std;
 int main ()
 {

 string str=”ConCho chay qua chay qua rao”;

 cout << str.find(“chay”) << endl; // 7

 cout << (int)str.rfind(“chay”) << endl; // 16

2.8)Hàm substr(int pos, int nchar)

 Trích ra chuỗi con của một chuỗi cho trước

 Ví dụ

str.substr(2,4) trả về chuỗi con gồm 4 ký tự của
chuỗi str kể từ ký tự ở vị trí thứ 2 (ký tự đầu tiên của
chuỗi ở vị trí 0).