Paano gamitin ang pagpapaandar ng substr () sa C ++

How Use Substr Function C



Ang paraan upang i-cut ang anumang bahagi mula sa isang string ay tinatawag na isang sub-string. Ang pagpapaandar ng substr () ay umiiral sa C ++ upang makabuo ng isang bagong string sa pamamagitan ng pagputol ng isang partikular na bahagi mula sa isang string. Ang tali.h kinakailangang isama ang file ng library upang magamit ang pagpapaandar na ito. Ang pagpapaandar na ito ay may dalawang mga argumento. Naglalaman ang unang argumento ng panimulang posisyon ng bagong string, at ang pangalawang argument ay naglalaman ng haba ng string. Ang paraan upang magamit ang pagpapaandar ng substr () sa C ++ ay naipaliwanag sa tutorial na ito.

Paunang kinakailangan

Bago suriin ang mga halimbawa ng tutorial na ito, kailangan mong suriin ang naka-install na g ++ compiler o wala sa system. Kung gumagamit ka ng Visual Studio Code, pagkatapos ay i-install ang mga kinakailangang extension upang maipon ang C ++ source code upang likhain ang maipapatupad na code. Dito, ang application ng Visual Studio Code ay ginamit upang makatipon at maipatupad ang C ++ code.







Syntax

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



Dito, naglalaman ang unang argumento ng panimulang posisyon mula sa kung saan magsisimula ang sub-string, at ang pangalawang argument ay naglalaman ng haba ng sub-string. Ibabalik ng pagpapaandar ang sub-string kung ang wastong posisyon ng pagsisimula at haba ay ibinigay. Ang iba't ibang paggamit ng pagpapaandar na ito ay ipinakita sa susunod na bahagi ng tutorial na ito.



Halimbawa 1: Simpleng paggamit ng substr ()

Ipinapakita ng sumusunod na halimbawa ang pinakakaraniwan at simpleng paggamit ng pagpapaandar ng substr (). Lumikha ng isang C ++ file na may sumusunod na code upang makabuo ng isang substring mula sa isang halaga ng string. Ang isang string ng maraming mga salita ay itinalaga sa isang variable ng string. Susunod, ang wastong panimulang posisyon at ang haba ng sub-string ay mayroon sa mga halaga ng argument ng pagpapaandar ng substr (). Parehong ang orihinal na string at ang substring ay mai-print pagkatapos ipatupad ang code.





// Isama ang mga kinakailangang aklatan
# isama
# isama


intpangunahing() {
// Tukuyin ang isang variable ng string
oras::lubidoriginalstr='Maligayang pagdating sa Linuxhint';
// Gupitin ang sub string gamit ang substr ()
oras::lubidnewstr=originalstr.substr (labing-isang,9);
// I-print ang orihinal na string
oras::gastos <<'Ang orihinal na string ay:' <<originalstr<< ' n';
// I-print ang sub string
oras::gastos <<'Ang substring ay:' <<newstr<< ' n';

bumalik ka 0;
}

Output:

Ayon sa code, ang orihinal na string ay ' Maligayang pagdating sa LinuxHint ‘. Ang 11 ay ibinigay bilang panimulang posisyon ng sub-string na ang posisyon ng character na 'L', at ang 9 ay ibinigay bilang haba ng halaga ng sub-string. ' LinuxHint 'Ay bumalik bilang output ng pagpapaandar ng substr () pagkatapos maipatupad ang code.



Halimbawa 2: Paggamit ng substr () batay sa posisyon ng isang tukoy na string

Ang sumusunod na code ay bubuo ng sub-string pagkatapos maghanap ng posisyon ng partikular na string. Lumikha ng isang C ++ file na may sumusunod na code upang subukan ang code. Ang isang halaga ng string ng maraming mga salita ay tinukoy sa code. Susunod, ang posisyon ng isang partikular na string ay hinanap sa pangunahing string sa pamamagitan ng paggamit ng find () function. Ang pagpapaandar ng substr () ay ginamit upang makabuo ng sub-string na nagsisimula mula sa simula ng string hanggang sa halaga ng posisyon na ibabalik ng find () function.

// Isama ang mga kinakailangang aklatan
# isama
# isama
gamit namespaceoras;

intpangunahing()
{
oras::lubidstrData= 'Gusto ko ng C ++ program';

// Hanapin natin ang posisyon ng '-' gamit ang str.find ()
intposisyon=strDatahanapin('programa');

// Makukuha namin ang substring hanggang sa pattern na ito
oras::lubidnewstr=strDatasubstr(0, posisyon);

oras::gastos <<strData<< ' n';
oras::gastos <<newstr<< ' n';

bumalik ka 0;
}

Output:

Ayon sa code, ang pangunahing halaga ng string ay, Gusto ko ng C ++ program at ang halaga ng string ng paghahanap ay, ‘ programa ' na umiiral sa pangunahing string. Kaya, ang output ay, ' Gusto ko ng C ++ ‘Matapos maipatupad ang code.

Halimbawa 3: Paggamit ng substr () na may paghawak ng pagbubukod

Ang pagpapaandar ng substr () ay ginamit na may pagbubukod sa paghawak sa sumusunod na code. Ang pagbubukod ay malilikha kung ang di wastong panimulang posisyon ay ibinigay sa pagpapaandar ng substr (). Lumikha ng isang C ++ file na may sumusunod na code upang subukan ang code. Sa try block, ang isang halaga ng string ng isang salita ay naitalaga, at isang hindi wastong panimulang posisyon ang ginamit sa pagpapaandar ng substr () na magtataas ng isang pagbubukod at mai-print ang mensahe ng error.

// Isama ang mga kinakailangang aklatan
# isama
# isama

intpangunahing() {
subukan mo{

// Tukuyin ang isang variable ng string
oras::lubidoriginalstr='Linuxhint';
// Gupitin ang sub string gamit ang substr ()
oras::lubidnewstr=originalstr.substr (labing-isang,9);
// I-print ang sub string
oras::gastos <<'Ang substring ay:' <<newstr<< ' n';
}
mahuli (Constoras::out_of_range) {
oras::cerr << 'Ang posisyon ay wala sa Saklaw. n';
}
bumalik ka 0;
}

Output:

Ayon sa code, ang pangunahing halaga ng string ay, LinuxHint at ang halaga ng panimulang posisyon ay 11 na wala. Kaya, ang pagbubukod ay nabuo, at ang mensahe ng error ay na-print pagkatapos ipatupad ang code.

Halimbawa 4: Paggamit ng substr () upang hatiin ang string

Ipinapakita ng sumusunod na halimbawa ang paggamit ng pagpapaandar ng substr () upang hatiin ang isang string batay sa isang delimiter. Ang pag-andar ng find () ay ginamit upang maghanap sa posisyon ng delimiter, at ang function na burahin () ay ginamit upang alisin ang pinaghiwalay na string na may delimiter mula sa pangunahing string. Ang loop na 'habang' ay ginamit upang hanapin ang lahat ng mga posisyon ng delimiter sa pangunahing string at iimbak ang hating halaga sa vector array. Susunod, ang mga halaga ng hanay ng vector ay nai-print.

// Isama ang mga kinakailangang aklatan
# isama
# isama
# isama

intpangunahing(){
// Tukuyin ang string
oras::lubidstringData= 'PHP: C ++: Python:';
// Tukuyin ang separator
oras::lubidnaghihiwalay= ':';
// Ideklara ang variable ng vector
oras::vectormga wika{};
// Declare integer variable
intposisyon;
// Declare string variable
oras::lubidpaglabas;
/ *
Hatiin ang string gamit ang pagpapaandar ng substr ()
at pagdaragdag ng pinaghiwalay na salita sa vector
* /

habang ((posisyon=stringData.hanapin(naghihiwalay)) !=oras::lubid::npos) {
mga wikapush_back(stringData.substr(0, posisyon));
stringData.burahin(0, posisyon+naghihiwalayhaba());
}
// I-print ang lahat ng mga pinaghiwalay na salita
para sa (Const awtomatiko &paglabas:mga wika) {
oras::gastos <<paglabas<<oras::endl;
}
bumalik ka 0;
}

Output:

Ayon sa code, ang pangunahing halaga ng string ay PHP: C ++: Python at ang halaga ng delimiter ay, ‘ : ’ . Ang sumusunod na output ay lilitaw pagkatapos ipatupad ang script sa itaas.

Konklusyon

Ang pangunahing layunin ng paggamit ng pag-andar ng substr () ay upang makuha ang isang substring mula sa isang string sa pamamagitan ng pagbanggit ng panimulang posisyon at ang haba ng sub-string. Ang iba't ibang mga paggamit ng pagpapaandar na ito ay naipaliwanag sa tutorial na ito sa pamamagitan ng paggamit ng maraming mga halimbawa upang matulungan ang mga bagong gumagamit ng C ++ na magamit ito nang maayos sa kanilang code.