Hàm substr trong C++

Hướng dẫn cách sử dụng hàm substr trong C++. Bạn sẽ học được cách sử dụng hàm substr để cắt chuỗi con ra từ chuỗi string ban đầu trong C++ sau bài học này.

substr trong C++

Hàm substr là một hàm thành viên trong class std:string, có tác dụng cắt chuỗi con ra từ chuỗi string ban đầu bằng cách chỉ định vị trí và độ dài chuỗi cần cắt. Phép cắt string bằng hàm substr trong C++ không làm thay đổi chuỗi ban đầu mà sẽ lưu kết quả cắt vào một string mới.

Như các hàm khác trong class str:string thì để sử dụng hàm substr, chúng ta cần include header file string vào đầu chương trình.

Cú pháp sử dụng hàm substr để cắt string trong C++ như sau:

Bạn đang đọc: Hàm substr trong C++

str.substr ( start, length ) ;

Trong đó str là chuỗi ban đầu, start là vị trí bắt đầu cắt, và length là độ dài (số ký tự) cần cắt ra. Nếu không chỉ định length thì mặc định sẽ cắt từ vị trí chỉ định cho tới cuối chuỗi string ban đầu.

Cắt string từ vị trí chỉ định tới cuối string trong C++

Khi lược bỏ đối số length thì mặc định chương trình sẽ cắt từ vị trí chúng ta chỉ định cho tơi vị trí cuối chuỗi. Ví dụ cụ thể:

Ví dụ cụ thể:



using namespace std;

int main() {
string str = "Hello World!";

string substr = str.substr(6);

cout << substr << endl;

return 0;
}

Kết quả, một chuỗi con được tách ra từ vị trí index bằng 6 tới cuối chuỗi ban đầu như sau:

World!

Cắt một phạm vi trong string C++

Khi chỉ định giá trị của đối số length, khi đó một phạm vi bắt đầu từ vị trí chỉ định và có độ dài băng length sẽ được cắt ra từ chuỗi string ban đầu. Ví dụ:



using namespace std;

int main() {
string str = "Hello World!";
string substr = str.substr(1, 3);
cout << substr << endl;

string substr2 = str.substr(1,6);
cout << substr2 << endl;
return 0;
}

Kết quả, các chuỗi string được cắt trong phạm vi chỉ định như sau:

ell
ello W

Cắt chuỗi con từ cuối lên đầu string trong C++

Hàm substr chỉ có tác dụng cắt theo chiều thuận từ đầu tới cuối chuỗi string. Và trong C++ cũng không có hàm nào có thể giúp chúng ta cắt chuỗi con từ cuối lên đầu string, nên chúng ta sẽ phải tự viết hàm để làm được điều này.

Dưới đây là một hàm mẫu ứng dụng hàm substr để thực hiện xử lý cắt từ cuối lên đầu string trong C++.



using namespace std;

string substrBack(string str, size_t pos, size_t len) {


return str.substr(pos - len, len);
}

int main() {
string str = "Hello World!";


string substr3 = substrBack(str, 5, 2);
cout << substr3 << endl;


string substr1 = substrBack(str, 5, 5);
cout << substr1 << endl;


string substr2 = substrBack(str, str.length(), 6);
cout << substr2 << endl;


return 0;
}

Kết quả:

lo
Hello
World!

Lưu ý là ở ví dụ ở đầu cuối, tất cả chúng ta sử dụng str.length ( ) để thu về độ dài của chuỗi, cũng chính là vị trí đứng trước vị trí sau cuối trong chuỗi .

Lưu ý khi cắt string trong C++ bằng hàm substr

Khi sử dụng hàm substr, tất cả chúng ta cần quan tâm phép cắt string bằng hàm substr trong C + + không làm biến hóa chuỗi khởi đầu mà sẽ lưu tác dụng cắt vào một string mới .

Thật vậy, chuỗi ban đầu không hề bị thay đổi sau khi bị cắt bằng hàm substr như sau:



using namespace std;

int main() {
string str = "Hello World!";


string substr = str.substr(1, 3);
cout << substr << endl;


cout << str << endl;
return 0;
}

Kết quả:

ell
Hello World!

Có thể thấy rõ chuỗi str ban đầu không hề thay đối sau khi bị cắt một phạm vi từ nó.

Vậy nên nếu bạn muốn sử dụng hiệu quả phép cắt string nhiều lần trong chương trình, hãy luôn chuẩn bị sẵn sàng sẵn một chuỗi string để chứa hiệu quả phép cắt nhé .

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về hàm substr trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng khám phá những kỹ năng và kiến thức sâu hơn về C + + trong những bài học kinh nghiệm tiếp theo .

ĐÁNH GIÁ post
Bài viết liên quan

Tư vấn miễn phí (24/7) 094 179 2255