Cách sử dụng hàm substr () trong C ++

How Use Substr Function C



Cách cắt bất kỳ phần nào khỏi chuỗi được gọi là chuỗi con. Hàm substr () tồn tại trong C ++ để tạo một chuỗi mới bằng cách cắt một phần cụ thể khỏi chuỗi. Các string.h tệp thư viện được yêu cầu bao gồm để sử dụng chức năng này. Hàm này có hai đối số. Đối số đầu tiên chứa vị trí bắt đầu của chuỗi mới và đối số thứ hai chứa độ dài của chuỗi. Cách sử dụng hàm substr () trong C ++ đã được giải thích trong hướng dẫn này.

Điều kiện tiên quyết

Trước khi kiểm tra các ví dụ của hướng dẫn này, bạn phải kiểm tra trình biên dịch g ++ đã được cài đặt hay chưa trong hệ thống. Nếu bạn đang sử dụng Visual Studio Code, thì hãy cài đặt các phần mở rộng cần thiết để biên dịch mã nguồn C ++ nhằm tạo mã thực thi. Ở đây, ứng dụng Visual Studio Code đã được sử dụng để biên dịch và thực thi mã C ++.







Cú pháp

string substr (size_t pos = 0, size_t len ​​= npos) const;



Ở đây, đối số đầu tiên chứa vị trí bắt đầu từ nơi chuỗi con sẽ được bắt đầu và đối số thứ hai chứa độ dài của chuỗi con. Hàm sẽ trả về chuỗi con nếu vị trí và độ dài bắt đầu hợp lệ được cung cấp. Các cách sử dụng khác nhau của chức năng này đã được trình bày trong phần tiếp theo của hướng dẫn này.



Ví dụ 1: Cách sử dụng đơn giản của substr ()

Ví dụ sau đây cho thấy cách sử dụng phổ biến và đơn giản nhất của hàm substr (). Tạo tệp C ++ với mã sau để tạo chuỗi con từ giá trị chuỗi. Một chuỗi gồm nhiều từ đã được gán vào một biến chuỗi. Tiếp theo, vị trí bắt đầu hợp lệ và độ dài của chuỗi con có trong các giá trị đối số của hàm substr (). Cả chuỗi gốc và chuỗi con sẽ được in ra sau khi thực thi mã.





// Bao gồm các thư viện cần thiết
#bao gồm
#bao gồm


NSchủ chốt() {
// Định nghĩa một biến chuỗi
giờ::dâyban đầu='Chào mừng đến với Linuxhint';
// Cắt chuỗi con bằng cách sử dụng substr ()
giờ::dâynewstr=bản gốc.substr (mười một,9);
// In chuỗi gốc
giờ::Giá cả <<'Chuỗi ban đầu là:' <<ban đầu<< ' ';
// In chuỗi con
giờ::Giá cả <<'Chuỗi con là:' <<newstr<< ' ';

trở lại 0;
}

Đầu ra:

Theo mã, chuỗi ban đầu là ‘ Chào mừng bạn đến với LinuxHint ‘. 11 đã cho là vị trí bắt đầu của chuỗi con là vị trí của ký tự ‘L’ và 9 đã cho là giá trị độ dài của chuỗi con. ‘ LinuxHint ‘Đã trả về dưới dạng đầu ra của hàm substr () sau khi thực thi mã.



Ví dụ 2: Sử dụng substr () dựa trên vị trí của một chuỗi cụ thể

Đoạn mã sau sẽ tạo chuỗi con sau khi tìm kiếm vị trí của chuỗi cụ thể. Tạo tệp C ++ với mã sau để kiểm tra mã. Giá trị chuỗi của nhiều từ đã được xác định trong mã. Tiếp theo, vị trí của một chuỗi cụ thể được tìm kiếm trong chuỗi chính bằng cách sử dụng hàm find (). Hàm substr () đã được sử dụng để tạo chuỗi con bắt đầu từ đầu chuỗi đến giá trị vị trí sẽ được trả về bởi hàm find ().

// Bao gồm các thư viện cần thiết
#bao gồm
#bao gồm
sử dụng không gian têngiờ;

NSchủ chốt()
{
giờ::dâystrData= 'Tôi thích lập trình C ++';

// Hãy tìm vị trí của '-' bằng cách sử dụng str.find ()
NSChức vụ=strData.tìm thấy('lập trình');

// Chúng ta sẽ nhận được chuỗi con cho đến khi mẫu này
giờ::dâynewstr=strData.substr(0, Chức vụ);

giờ::Giá cả <<strData<< ' ';
giờ::Giá cả <<newstr<< ' ';

trở lại 0;
}

Đầu ra:

Theo mã, giá trị chuỗi chính là, Tôi thích lập trình C ++ và giá trị của chuỗi tìm kiếm là, ' lập trình ' tồn tại trong chuỗi chính. Vì vậy, đầu ra là, ' Tôi thích C ++ ‘Sau khi thực thi mã.

Ví dụ 3: Sử dụng substr () với xử lý ngoại lệ

Hàm substr () đã được sử dụng với việc xử lý ngoại lệ trong đoạn mã sau. Ngoại lệ sẽ được tạo ra nếu vị trí bắt đầu không hợp lệ được đưa ra trong hàm substr (). Tạo tệp C ++ với mã sau để kiểm tra mã. Trong khối try, một giá trị chuỗi của một từ đã được gán và vị trí bắt đầu không hợp lệ đã được sử dụng trong hàm substr () sẽ tạo ra một ngoại lệ và in ra thông báo lỗi.

// Bao gồm các thư viện cần thiết
#bao gồm
#bao gồm

NSchủ chốt() {
cố gắng{

// Định nghĩa một biến chuỗi
giờ::dâyban đầu='Linuxhint';
// Cắt chuỗi con bằng cách sử dụng substr ()
giờ::dâynewstr=bản gốc.substr (mười một,9);
// In chuỗi con
giờ::Giá cả <<'Chuỗi con là:' <<newstr<< ' ';
}
chụp lấy (hăng sôgiờ::out_of_range) {
giờ::chứng nhận << 'Vị trí nằm ngoài phạm vi. ';
}
trở lại 0;
}

Đầu ra:

Theo mã, giá trị chuỗi chính là, LinuxHint và giá trị của vị trí bắt đầu là 11 không tồn tại. Vì vậy, ngoại lệ đã được tạo và thông báo lỗi đã được in sau khi thực thi mã.

Ví dụ 4: Sử dụng substr () để chia chuỗi

Ví dụ sau đây cho thấy việc sử dụng hàm substr () để tách một chuỗi dựa trên dấu phân cách. Hàm find () đã được sử dụng để tìm kiếm vị trí dấu phân cách và hàm delete () đã được sử dụng để loại bỏ chuỗi đã tách bằng dấu phân cách khỏi chuỗi chính. Vòng lặp ‘while’ đã được sử dụng để tìm tất cả các vị trí của dấu phân cách trong chuỗi chính và lưu trữ giá trị đã tách vào mảng vectơ. Tiếp theo, các giá trị của mảng vectơ đã được in ra.

// Bao gồm các thư viện cần thiết
#bao gồm
#bao gồm
#bao gồm

NSchủ chốt(){
// Xác định chuỗi
giờ::dâystringData= 'PHP: C ++: Python:';
// Xác định dấu phân tách
giờ::dâyngăn cách= ':';
// Khai báo biến vector
giờ::vectơngôn ngữ{};
// Khai báo biến số nguyên
NSChức vụ;
// Khai báo biến chuỗi
giờ::dâyoutstr;
/ *
Tách chuỗi bằng hàm substr ()
và thêm từ đã tách vào vectơ
* /

trong khi ((Chức vụ=stringData.tìm thấy(ngăn cách)) !=giờ::dây::npos) {
ngôn ngữ.push_back(stringData.substr(0, Chức vụ));
stringData.tẩy xóa(0, Chức vụ+dải phân cách.chiều dài());
}
// In tất cả các từ đã tách
(hăng sô tự động &outstr:ngôn ngữ) {
giờ::Giá cả <<outstr<<giờ::endl;
}
trở lại 0;
}

Đầu ra:

Theo mã, giá trị chuỗi chính là PHP: C ++: Python và giá trị của dấu phân cách là, ' : ' . Kết quả sau sẽ xuất hiện sau khi thực hiện tập lệnh trên.

Phần kết luận

Mục đích chính của việc sử dụng hàm substr () là lấy một chuỗi con từ một chuỗi bằng cách đề cập đến vị trí bắt đầu và độ dài của chuỗi con. Các cách sử dụng khác nhau của hàm này đã được giải thích trong hướng dẫn này bằng cách sử dụng nhiều ví dụ để giúp người dùng C ++ mới sử dụng nó đúng cách trong mã của họ.