Lahat ng Kailangan Mong Malaman Tungkol sa Mga String sa C ++



Magbibigay sa iyo ang artikulong ito ng isang detalyado at komprehensibong kaalaman tungkol sa Strings sa C ++ at magbibigay din ng mga halimbawa ng iba't ibang mga operasyon.

Ang termino nangangahulugang isang order ng pagkakasunud-sunod ng mga character. Ang isang pagkakasunud-sunod ng mga character ay maaaring kinatawan gamit ang isang bagay ng isang klase sa C ++. Ang klase na nagbibigay ng kahulugan upang gawin ito ay tinatawag na isang klase ng String. Iniimbak ng string class ang mga character bilang isang pagkakasunud-sunod ng mga byte na may pag-andar ng pagpapahintulot sa pag-access sa solong-byte na character. Sa C ++ ang mga nakapaloob na mga delimiter ay dobleng quote. Sa artikulong 'Strings in C ++' tatalakayin ko ang mga sumusunod na paksa:

Pagkakaiba sa Klase at Pagkakaiba ng Aray ng Character

String class Character Array
Ang klase ng string ay isang klase na tumutukoy sa mga bagay na maaaring kinatawan bilang isang stream ng mga characterAng array ng character ay simpleng isang array ng mga character.
Sa kaso ng mga string, ang memorya ay inilalaan nang pabagu-bago kaya mas maraming memorya ang maaaring ilaan sa oras ng pagtakbo kapag hinilingAng laki ng array ng character ay dapat na ilalaan statically kaya mas memorya ay hindi maaaring inilalaan sa run time kung kinakailangan
Tinutukoy ng klase ng string ang isang bilang ng mga pagpapaandar na nagpapahintulot sa maraming operasyon sa mga string.Ang character array ay hindi nag-aalok ng maraming mga in-built na pag-andar upang manipulahin ang mga string
Mas mabagal ang mga string kung ihinahambing sa pagpapatupad kaysa sa character array.Pagpapatupad ng isang character array ay mas mabilis.

Ipahayag at Pasimulan ang isang Mga String sa C ++

strings-in-c++Ang pagsisimula ng string sa C ++ ay medyo simple !. Maaari naming gamitin ang alinman sa mga sumusunod na pamamaraan.





gamit ang namespace std string std_string

o

std :: string std_string
# isama ang paggamit ng namespace std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hello by st' std :: string std_st = 'Hello by std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Output:



Kamusta ni ch Kamusta ni st Kamusta ni std_st

Sa halimbawang ito, ipinakita namin ang parehong character array (ch) at ang string class (st at std_st) mga pamamaraan ng pagsisimula. Una, ginamit namin ang paraan ng pag-array ng character sa pamamagitan ng pagtukoy sa isang character array ch [12] na naglalaman ng 12 elemento at tinatapos na may null na character. Sa pangalawang bahagi, gumamit kami ng pamamaraan ng klase ng string.

mga kinakailangan para sa kursong artipisyal na katalinuhan

Ang mga operasyon sa Strings sa C ++

Ang bentahe ng paggamit ng klase ng string ay ang maraming mga built-in na pag-andar sa C ++ upang manipulahin ang mga ito. Ginagawa nitong madali at epektibo ang programa. Tumagal tayo ng ilang mahalagang mga pagpapaandar sa pagmamanipula ng string at maunawaan ang mga ito sa pamamagitan ng pagtingin sa ilang mga halimbawa.

Laki ng String: Ang parehong mga laki () at haba () na pamamaraan ay maaaring magamit upang maibalik ang laki ng bagay.



gastos<< st.length() <

Output:

11 11

Strat Concatenation: Maaari naming pagsamahin ang dalawa o higit pang mga string sa pamamagitan lamang ng paggamit ng + operator sa pagitan nila

string new_string = st + 'at' + std_st cout<< new_string <

Output:

ay-isang relasyon java
Kamusta ni st at Kamusta ni std_st

Nagdadagdag ng Mga string: Ang pag-andar ng .append (string) na miyembro ng klase ay maaaring magamit upang pagsamahin at idugtong ang isang string sa isang tukoy na lokasyon ng character sa string. Kung ang isang programmer ay naglalagay ng str.append (str1, p, n), pagkatapos ay nangangahulugan ito na ang bilang ng mga character mula sa posisyon p sa string str1 ay idugtong sa dulo ng str.

string str = 'Nasisiyahan ako sa pag-aaral' string str1 = 'Python, C ++, o C' str.append (str1, 8, 3) cout<< str << endl

Output:

Nasisiyahan ako sa pag-aaral ng C ++

Naghahanap ng mga string: Maaari naming gamitin ang paghahanap ng () miyembro function upang hanapin ang unang paglitaw ng isang string sa loob ng isa pa. hanapin ang () maghahanap ng string needle sa loob ng string haystack na nagsisimula sa posisyong pos at ibalik ang posisyon ng unang paglitaw ng karayom. Ang function na rfind () ay gumagana nang katulad, maliban sa ibabalik nito ang huling paglitaw ng naipasang string.

string haystack = 'Hello World!' string needle = 'o' cout<< haystack.find(needle)<

Output:

4 4 7 4294967295

Ang unang utos ng cout ay i-print lamang ang '4' na index ng unang paglitaw ng 'o' sa string ng haystack. Kung nais natin ang 'o' sa 'Mundo', kailangan nating baguhin ang 'pos' upang ituro ang nakaraang paglitaw. ang haystack.find (karayom, 4) ay muling magbabalik ng 4, habang ang haystack.find (karayom, 5) ay magbibigay ng 7. Kung ang substring ay hindi natagpuan, hanapin () ibabalik ang std :: string :: npos.

kung paano bumuo ng isang app ng salesforce

Ang Npos ay isang espesyal na halagang katumbas ng maximum na halagang kinakatawan ng uri ng laki ng_type. Narito ito ay 4294967295. Sa pangkalahatan, ginagamit ito alinman sa pagtatapos ng tagapagpahiwatig ng string ng mga pagpapaandar na inaasahan ang isang string index o bilang tagapagpahiwatig ng error ng mga pagpapaandar na nagbabalik ng isang index ng string.

Ang simpleng code na ito ay naghahanap ng isang string para sa lahat ng mga paglitaw ng 'C ++' sa str2 at inililimbag ang kanilang mga posisyon:

ang string str2 = 'C ++ ay isang object-oriented na programming language at may kasamang mga klase, mana, polymorphism, data abstraction at encapsulation. Pinapayagan ng C ++ ang paghawak ng pagbubukod, at pag-overload ng pagpapaandar na hindi posible sa C.C ++ ay isang malakas, mahusay at mabilis na wika. ' para sa (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Output:

Natagpuan ang paglitaw ng 'C ++' sa posisyon 0 Natagpuan ang paglitaw ng 'C ++' sa posisyon 132 Natagpuan ang paglitaw ng 'C ++' sa posisyon 217
# isama ang paggamit ng namespace std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Late binding (RTP) ptr-> fun_3 () // Late binding (RTP) ptr-> fun_4 () // Maagang nagbubuklod ngunit ang function na tawag na ito ay // iligal (gumagawa ng error) dahil ang pointer // ay ng batayang uri at pagpapaandar ay ng // nagmula sa klase // p-> masaya_4 (5)}

Output:

pag-andar ng batayang klase 1 nagmula sa pag-andar ng klase 2 pagpapaandar ng batayang klase 3 pag-andar ng pangunahing klase 4

Sa pamamagitan nito, natapos namin ang artikulong ito sa Strings in C ++. Inaasahan kong nakakuha ka ng pag-unawa sa iba't ibang Mga Operasyong maaaring gampanan dito. Kung nais mong matuto nang higit pa, tingnan ang Java Training ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online. Edureka’s Ang kurso sa pagsasanay at sertipikasyon ay idinisenyo upang sanayin ka para sa parehong pangunahing at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin sa lalong madaling panahon.