Све што треба да знате о стринговима у Ц ++



Овај чланак ће вам пружити детаљно и свеобухватно знање о стринговима у језику Ц ++, а такође ће дати примере различитих операција.

Термин означава уређени низ знакова. Низ знакова може се представити помоћу објекта класе у језику Ц ++. Класа која даје дефиницију за то назива се Стринг класа. Стринг класа чува знакове као секвенцу бајтова са функцијом омогућавања приступа једнобајтном карактеру. У Ц ++-у, граничници који су обухваћени су двоструким наводницима. У овом чланку „Стрингс ин Ц ++“ разговараћу о следећим темама:

Разлика у класи низа и низу знакова

Стринг цласс Низ знакова
Стринг класа је класа која дефинише објекте који се могу представити као ток знаковаНиз знакова је једноставно низ знакова.
У случају низова, меморија се додељује динамички, па се на захтев може доделити више меморије у време извођењаВеличина низа знакова мора бити додијељена статички, па се више меморије не може додијелити у вријеме извођења ако је потребно
Класа стринг дефинише бројне функционалности које омогућавају вишеструке операције на жицама.Низ знакова не нуди много уграђених функција за манипулисање низовима
Низови су спорији у поређењу са имплементацијом од низа знакова.Имплементација низа знакова је брже.

Прогласите и иницијализујте низове у Ц ++

strings-in-c++Иницијализација низа у Ц ++-у је прилично једноставна !. Можемо користити било који од следећих метода.





користећи простор имена стд стринг стд_стринг

или

стд :: стринг стд_стринг
#инцлуде усинг намеспаце стд инт маин () {цхар цх [12] = {'Х', 'е', 'л', 'л', 'о', '', 'б', 'и', '' , 'ц', 'х', ''} стринг ст = 'Хелло би ст' стд :: стринг стд_ст = 'Хелло би стд_ст' цоут<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Излаз:



јавасцрипт добије дужину низа
Здраво од цх Здраво од ст Хелло од стд_ст

У овом примеру смо приказали и низ знакова (цх) и низ цласс (ст и стд_ст) методе иницијализације. Прво, користили смо метод низа знакова дефинишући низ знакова цх [12] који садржи 12 елемената и завршава се нулом знаком. У другом делу смо користили метод класе стринга.

Операције на стринговима у Ц ++

Предност употребе класе стринга је у томе што у Ц ++ постоји неколико уграђених функција за манипулацију њима. Ово чини програмирање лаким и ефикасним. Заузмимо неке важне функције манипулације низовима и схватимо их гледајући неке примере.

Величина низа: За враћање величине објекта могу се користити и методе сизе () и ленгтх ().



трошак<< st.length() <

Излаз:

11 11

Спајање низова: Можемо повезати две или више низова једноставним коришћењем оператора + између њих

стринг нев_стринг = ст + 'и' + стд_ст цоут<< new_string <

Излаз:

Хелло би ст и Хелло би стд_ст

Додавање жица: Функција члана .аппенд (стринг) класе може се користити за спајање и додавање низа на одређено место знакова у низу. Ако програмер стави стр.аппенд (стр1, п, н), то значи да ће н број знакова са положаја п у низу стр1 бити додан на крај стр.

стринг стр = 'Уживам у учењу' стринг стр1 = 'Питхон, Ц ++ или Ц' стр.аппенд (стр1, 8, 3) цоут<< str << endl

Излаз:

Уживам у учењу Ц ++

Претраживање низова: Можемо користити функцију финд () да пронађемо прву појаву низа у другој. финд () ће потражити иглу низа унутар стога сијена почевши од положаја поз и вратити положај првог појављивања игле. Функција рфинд () ради слично, осим што враћа последњу појаву прослеђеног низа.

стринг хаистацк = 'Здраво свете!' стринг игла = 'о' цоут<< haystack.find(needle)<

Излаз:

4 4 7 4294967295

Прва наредба цоут једноставно ће исписати „4“, што је индекс првог појављивања „о“ у низу сена. Ако желимо „о“ у „Свијету“, морамо да модификујемо „поз“ тако да указује на прву појаву. хаистацк.финд (игла, 4) би поново вратио 4, док би хаистацк.финд (игла, 5) дао 7. Ако подниз није пронађен, финд () враћа стд :: стринг :: нпос.

Нпос је посебна вредност једнака максималној вредности коју може представити тип сизе_типе. Овде је то 4294967295. Генерално, користе га или као индикатор краја низа функције које очекују индекс низа или као индикатор грешке функције које враћају индекс низа.

Овај једноставни код претражује низ свих појава „Ц ++“ у стр2 и исписује њихове позиције:

стринг стр2 = 'Ц ++ је објектно оријентисани програмски језик и укључује класе, наслеђивање, полиморфизам, апстракцију података и енкапсулацију.Ц ++ омогућава руковање изузетцима, а преоптерећење функција које у Ц.Ц ++ нису могуће је моћан, ефикасан и брз језик. ' за (стринг :: сизе_типе и = 0, тфинд (тфинд = викистр.финд ('Ц ++', и))! = стринг :: нпос и = тфинд + 1) {стд :: цоут<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Излаз:

Пронађена појава 'Ц ++' на позицији 0 Пронађена појава 'Ц ++' на позицији 132 Пронађена појава 'Ц ++' на позицији 217
#инцлуде усинг спаце намес стд цласс басе {публиц: воид фун_1 () {цоут<< '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 фун_2 () // Касно везивање (РТП) птр-> фун_3 () // Касно везивање (РТП) птр-> фун_4 () // Рано везивање, али овај позив функције // је незаконит (производи грешку) јер показивач // је основног типа и функција је // изведене класе // п-> фун_4 (5)}

Излаз:

функција основне класе 1 изведена функција класе 2 функција основне класе 3 функција основне класе 4

Овим смо завршили овај чланак о Стрингс у Ц ++. Надам се да сте разумели разне операције које се на њему могу извести. Ако желите да сазнате више, погледајте Јава Траининг компаније Едурека, поуздане компаније за учење на мрежи. Едурека курс за обуку и сертификацију осмишљени су тако да вас оспособе за основне и напредне Јава концепте, заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помените у одељку за коментаре на овом блогу и јавићемо вам се што је пре могуће.