Како се користи Ц ++ Стринг Цласс

How Use C String Class



Низ литерала је низ знакова у показивачу константног низа који се завршава знаком нул, 0. Када је идентификована променљивом, литерал низата не може заиста да смањи или повећа дужину. Многе операције се не могу извести над стринг литералом. Дакле, постоји потреба за класом стрингова. Класа низа Ц ++ служи за структуру података, збирку знакова у низу, која омогућава функцијама чланицама и операторима да делују на знакове. Класа стринга дозвољава више манипулација на одговарајућем литералном низу, него само на литералном низу. Да бисте разумели овај чланак, морате добро познавати дословни низ.

Класа и објекти

Класа је скуп променљивих и функција које раде заједно; где променљиве немају додељене вредности. Када су вредности додељене променљивим, класа постаје објекат. Различите вредности дате истој класи резултирају различитим објектима; односно различити објекти су исте класе са различитим вредностима. За стварање објекта из класе се каже да представља инстанцирање објекта.







Име, стринг, је класа. Објекат креиран из класе стрингова има име програмера.



Функција која припада класи потребна је за инстанцирање објекта из класе. У Ц ++ та функција има исто име као и име класе. Објекти направљени (настали) од класе имају различита имена која им је дао програмер.



Креирање објекта из класе значи конструисање објекта; то такође значи инстанцирање.





Ц ++ програм који користи класу низа почиње са следећим редовима на врху датотеке:

#инцлуде
#инцлуде
користећи именски простор стд;

Први ред је за улаз/излаз. Друга линија је да дозволи програму да користи све функције класе стрингова. Трећи ред омогућава програму да користи имена у стандардном простору имена.



Преоптерећење функције

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

Конструкција

низ()
Следећи исказ конструише низ нулте дужине без карактера.

стринг стрЦол=низ();

Почиње именом класе (врста објекта), низом. Након тога следи назив за стринг објекта, који је дао програмер. Следи оператор додељивања; затим име конструктора са празним заградама. Овде је стрЦол инстанцирани објекат са свим члановима података (својствима) и функцијама члана (методама).
стринг (стр)
Ово је слично претходном, али узима или стринг литерал или идентификатор као аргумент, у конструктору. Следећа изјава то илуструје:

стринг стрЦол=низ('Волим те');

Конструкција са листом иницијализатора

Следећи код то илуструје:

стринг стрЦол=низ({'Ја','','тхе','или','в','И','','и','или','ти',' 0'});

Дословни низ је Волим те. Обратите пажњу на знак нул на крају листе иницијализатора.

стринг (стр, н)

Ово формира збирку низова, од првих н знакова другог низа. Следећи код то илуструје:

цхарп[] = 'Волим те';
стринг стрЦол=низ(п, 6);
цена<<стрЦол<< ' н';

Испис је Волим са првих 6 знакова из Волим те. Запамтите: један размак је лик.

стринг (стр, пос, н)

Ово формира збирку низова од н знакова, почевши од индексиране позиције, поз, засноване на нули, другог низа. Следећи код то илуструје:

цхарп[] = 'Волим те';
стринг стрЦол=низ(п, 2, 4);
цена<<стрЦол<< ' н';

Резултат је, љубави.

За горња два случаја, ако је н веће од величине низа, избацује се изузетак оут_оф_ранге - погледајте касније.

стринг (н, 'ц')

Формира збирку од н знакова, где су сви знакови исти. Размотрити,

стринг стрЦол=низ(5,'И');
цена<<стрЦол<< ' н';

Излаз је, еееее, 5 е.

Додела низа

Низ се може доделити на следећи начин, након што су декларисана оба низа:

стринг стрЦол1=низ('Волим те');
стринг стрЦол2;
стрЦол2=стрЦол1;
цена<<стрЦол2<< ' н';

Резултат је, волим те.

Конструкција са Итератором

Итератор пружа генерички приказ скенирања, кроз вредности збирке. Синтакса за креирање низа са итератором је:

шаблон<класа ИнпутИтератор>
басиц_стринг(ИнпутИтератор почиње,ИнпутИтератор енд, цонстАллоцатор&
до=Аллоцатор());

Ово конструише низ за опсег [почетак, крај) - погледајте детаље касније.

Уништавање низа

Да бисте уништили низ, само га оставите ван опсега.

Приступ елементима класе низа

Објекат стринг инстанцираног објекта може бити скриптован (индексиран) попут низа. Бројање индекса почиње од нуле.

стрингНаме [и]

Операција стрингНаме [и] враћа референцу на знак (елемент) на итхиндекс збирке ликова. Следећи излази кода в:

стринг стрЦол=низ('Волим те');
цхарцх=стрЦол[4];
цена<<цх<< ' н';

стрингНаме [и] цонст

Операција стрингНаме [и] цонст се извршава уместо стрингНаме [и] када је стринг објекат константан објекат. На пример, користи се у следећем коду:

цонстстринг стрЦол=низ('Волим те');
цхарцх=стрЦол[4];
цена<<цх<< ' н';

Израз враћа сталну референцу на итхелемент стринг објекта. Ниједан елемент низа се не може променити.

Додела карактера са поднасловом

Знак се може доделити објекту који није константан низ, на следећи начин:

стринг стрЦол=низ('Зовем');
стрЦол[2] = 'ф';
цена<<стрЦол<< ' н';

Излаз је падам. „Ц“ је промењено у „ф“.

стрингНаме.ат (и)

стрингНаме.ат (и) је сличан стрингНаме [и], али је стрингНаме.ат (и) поузданији. Следећи код показује како га треба користити:

стринг стрЦол=низ('Волим те');
цхарцх=стрЦол.ат(4);
цена<<цх<< ' н';

ат () је заправо функција члана класе низа.

стрингНаме.ат (и) цонст

стрингНаме.ат (и) цонст је сличан стрингНаме [и] цонст, али стрингНаме.ат (и) цонст је поузданији. стрингНаме.ат (и) цонст се извршава уместо стрингНаме.ат (и) када је стринг објекат константан стринг објекат. Користи се у следећем коду, на пример:

цонстстринг стрЦол=низ('Волим те');
цхарцх=стрЦол.ат(4);
цена<<цх<< ' н';

ат () цонст је заправо функција члана класе низа.

Додељивање вредности помоћу функције ат ()

Вредност се може доделити неконстантном стринг објекту, са функцијом ат (), на следећи начин:

стринг стрЦол=низ('Зовем');
стрЦол.ат(2) = 'ф';
цена<<стрЦол<< ' н';

Излаз је падам.

Проблем са под скриптама

Проблем са под скриптирањем (индексирањем) је тај што ако је индекс изван распона, може се добити погрешан резултат или се може појавити грешка током извођења.

фронт ()

Ово враћа референцу на први елемент стринг објекта, без уклањања елемента. Излаз следећег кода је „И“.

стринг стрЦол=низ('Волим те');
цхарцх=стрЦол.фронт();
цена<<цх<< ' н';

Знак није уклоњен из објекта стринг.

фронт () цонст

Када конструкцији стринг -објекта претходи цонст, уместо фронт () се изводи израз фронт () цонст. Користи се у следећем коду, на пример.

цонстстринг стрЦол=низ('Волим те');
цхарцх=стрЦол.фронт();
цена<<цх<< ' н';

Враћа се константна референца. Елемент није уклоњен из објекта стринг. Ниједан знак се не може променити за објекат са сталним низом.

назад()

Ово враћа референцу на последњи елемент стринг објекта, без уклањања елемента. Излаз следећег кода је „у“.

стринг стрЦол=низ('Волим те');
цхарцх=стрЦол.назад();
цена<<цх<< ' н';

бацк () цонст

Када конструкцији стринг -објекта претходи цонст, уместо бацк () се извршава израз бацк () цонст. Користи се у следећем коду, на пример.

цонстстринг стрЦол=низ('Волим те');
цхарцх=стрЦол.назад();
цена<<цх<< ' н';

Враћа се константна референца. Елемент није уклоњен из објекта стринг.

Стринг Цапацити

сизе_типе цапацити () цонст ноекцепт

Укупан број знакова које стринг може да садржи без потребе за прерасподелом, враћа ова функција члана капацитета. Сегмент кода за ово је:

стринг стрЦол=низ();
интна једном=стрЦол.капацитет();
цена<<на једном<< ' н';

Излаз је 15 на мом рачунару.

резерва (н)

Меморијски простор није увек доступан у слободној продавници. Додатни простор се може резервисати унапред. Размотрите следећи сегмент кода:

стринг стрЦол=низ('љубав');
стрЦол.резерва(6);
цена<<стрЦол.капацитет() << ' н';

Излаз је 15 на мом рачунару.

сизе () цонст ноекцепт

Ово враћа број знакова у низу. Следећи код илуструје:

стринг стрЦол=низ('Волим те');
интна једном=стрЦол.величина();
цена<<на једном<< ' н';

Излаз је 10, који не укључује знак нул, 0.

ленгтх () цонст ноекцепт

-исто као и величина().
Белешка:величина() <=капацитет().

смањити да стане()

Може смањити капацитет () на величину () изазивањем прерасподјеле; није обавезно. Следећи код то показује:

стринг стрЦол=низ('Волим те');
стрЦол.резерва(12);
стрЦол.смањити да стане();
интс=стрЦол.величина();
цена<<с<< ' н';

Излаз је 10, а не 12 или 16. Функција враћа воид.

промени величину (сз), промени величину (сз, 'ц')

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

стринг стрЦол=низ('Волим те');
стрЦол.промените величину(6);
цена<< 'Нова величина стрЦол:' <<стрЦол.величина() << ' н';
стринг стрЦол1=низ('Волим', 'И');
стрЦол1.промените величину(12);
цена<< 'Нова величина стрЦол1:' <<стрЦол1.величина() << ' н';

Излаз је:

Нова величина стрЦол: 6
Нова величина стрЦол1: 12
Функција враћа воид.

цлеар () ноекцепт

Уклања све елементе из низа, као што приказује следећи сегмент кода:

стринг стрЦол=низ('Волим те');
стрЦол.јасно();
цена<<стрЦол.величина() << ' н';

Излаз је 0. Функција враћа воид.

емпти () цонст ноекцепт

Ово враћа 1 за труе ако нема знака у стринг објекту, или 0 за фалсе ако стринг објекат није празан. Следећи код то илуструје:

стринг стрЦол1=низ('Волим те');
цена<<стрЦол1.празна() << ' н';
стринг стрЦол2=низ();
цена<<стрЦол2.празна() << ' н';

Излаз је:

0
1

Враћање Итератора и класе низа

Итератор је попут показивача, али има више функција од показивача.

бегин () ноекцепт

Враћа итератор који показује на први знак (елемент) стринг објекта, као у следећем сегменту кода:

стринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::итераторитер=стрЦол.започети();
цена<< *итер<< ' н';

Излаз је 'И'. Обратите пажњу на начин на који је декларисана декларација која прима итератор. Итератор се дереференцира у повратном изразу да би се добила вредност, на исти начин на који се показивач дереференцира.

бегин () цонст ноекцепт;

Враћа итератор који указује на први елемент колекције стринг објеката. Када конструкцији објекта претходи цонст, израз бегин () цонст се извршава уместо бегин (). Под овим условом, одговарајући елемент у објекту се не може изменити. Користи се у следећем коду, на пример.

цонстстринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::цонст_итераторитер=стрЦол.започети();
цена<< *итер<< ' н';

Излаз је 'И'. Имајте на уму да је цонст_итератор овај пут коришћен, уместо само итератор, за пријем враћеног итератора.

енд () ноекцепт

Враћа итератор који показује непосредно иза последњег елемента стринг објекта. Размотрите следећи сегмент кода:

стринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::итераторитер=стрЦол.крај();
цена<< *итер<< ' н';

Излаз је нулл, што није ништа, јер нема конкретног елемента осим задњег елемента.

енд () цонст ноекцепт

Враћа итератор који показује непосредно иза последњег елемента стринг објекта. Када конструкцији стринг -објекта претходи цонст, уместо енд () се извршава израз енд () цонст. Размотрите следећи сегмент кода:

цонстстринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::цонст_итераторитер=стрЦол.крај();
цена<< *итер<< ' н';

Излаз је нулл. Имајте на уму да је цонст_итератор овај пут коришћен, уместо само итератор, за пријем враћеног итератора.

Реверсе Итератион

Могуће је имати итератор који понавља од стварног краја до непосредно пре првог елемента:

рбегин () ноекцепт

Враћа итератор који показује на последњи елемент објекта са инстанцом низа, као у следећем сегменту кода:

стринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::реверсе_итераторитер=стрЦол.рбегин();
цена<< *итер<< ' н';

Излаз је „у“. Забележите начин на који је декларисана декларација која прима обрнути итератор. Итератор се дереференцира у повратном изразу да би се добила вредност, на исти начин на који се показивач дереференцира.

рбегин () цонст ноекцепт;

Враћа итератор који показује на последњи елемент стринг објекта. Када конструкцији објекта претходи цонст, уместо рбегин () се извршава израз рбегин () цонст. Под овим условом, одговарајући елемент у објекту се не може изменити. Ова функција се користи у следећем коду, на пример.

цонстстринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::цонст_реверсе_итераторитер=стрЦол.рбегин();
цена<< *итер<< ' н';

Излаз је „у“. Имајте на уму да је цонст_реверсе_итератор овај пут коришћен, уместо само реверсе_итератор, за пријем враћеног итератора.

рендер () ноекцепт

Враћа итератор који показује непосредно пре првог елемента стринг објекта. Размотрите следећи сегмент кода:

стринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::реверсе_итераторитер=стрЦол.чини();
цена<< *итер<< ' н';

Излаз је нулл, што није ништа, јер не постоји конкретан елемент непосредно прије првог елемента.

рендер () цонст ноекцепт

Враћа итератор који показује непосредно пре првог елемента стринг објекта. Када конструкцији објекта претходи цонст, уместо ренд () се извршава израз ренд () цонст. Размотрите следећи сегмент кода:

цонстстринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::цонст_реверсе_итераторитер=стрЦол.чини();
цена<< *итер<< ' н';

Излаз је нулл. Имајте на уму да је цонст_реверсе_итератор овај пут коришћен, уместо само реверсе_итератор, за пријем враћеног итератора.

Модификатори стрингова

Модификатор који модификује стринг објекат, такође може узети или вратити итератор.

Додавање

басиц_стринг&оператер+ =(цонстбасиц_стринг&п)

Додаје десни стринг објекат левом стринг објекту. Пример:

стринг стрЦол1=низ('Волим');
стринг стрЦол2=низ(' ти');
стрЦол1+ =стрЦол2;
цена<<стрЦол1<< ' н';

Резултат је волим те. Не заборавите да је стрЦол1 += стрЦол2 исто што и стрЦол1 = стрЦол1 +стрЦол2.

басиц_стринг & оператор+= (цонст цхарТ* с)

Додаје литерал низа колекцији стринг објеката. Пример:

стринг стрЦол=низ('Волим');
стрЦол+ = ' ти';
цена<<стрЦол<< ' н';

Исход: Волим те.

басиц_стринг & оператор+= (цхарТ ц)

Додаје један знак низу објеката. Пример:

стринг стрЦол=низ('Волим те');
стрЦол+ = 'ти';
цена<<стрЦол<< ' н';

Исход: Волим те.

басиц_стринг & оператор+= (Инитиаллизер_лист)

Додаје листу иницијализатора. Пример:

стринг стрЦол=низ('Волим');
стрЦол+ = {'','и','или','ти',' 0'};
цена<<стрЦол<< ' н';

Исход: Волим те. Увек је добро додати нул, 0 на крај листе иницијализатора знакова.

басиц_стринг & аппенд (цонст басиц_стринг & стр)

Додаје објекат стринг аргумента главном објекту стринга. Пример:

стринг стрЦол1=низ('Волим');
стринг стрЦол2=низ(' ти');
стрЦол1.додати(стрЦол2);
цена<<стрЦол1<< ' н';

Исход: Волим те.

басиц_стринг & аппенд (цонст цхарТ* с)

Додаје стринг литерал аргумент главном низу. Пример

стринг стрЦол=низ('Волим');
стрЦол=стрЦол.додати(' ти');
цена<<стрЦол<< ' н';

Исход: Волим те.

басиц_стринг & аппенд (Инитилизер_лист)

Додаје листу иницијализатора, која је аргумент, у главни низ. Пример:

стринг стрЦол=низ('Волим');
стрЦол=стрЦол.додати({'','и','или','ти',' 0'});
цена<<стрЦол<< ' н';

Исход: Волим те. Увек је добро додати знак нул, 0 на крај листе иницијализатора.

басиц_стринг & аппенд (сизе_типе н, цхарТ ц)

Додаје н истог карактера. Пример:

стринг стрЦол=низ('картица');
стрЦол=стрЦол.додати(2, 'или');
цена<<стрЦол<< ' н';

Излаз: табу.

басиц_стринг & аппенд (цонст цхарТ* с, сизе_типе н)

Додаје првих н елемената низа литерала главном објекту низа. Пример:

стринг стрЦол=низ('Волим');
стрЦол=стрЦол.додати(' баш си', 4);
цена<<стрЦол<< ' н';

Резултат је: Волим те. Ако је н веће од дужине литерала, долази до изузетка ленгтх_еррор.

басиц_стринг & аппенд (цонст басиц_стринг & стр, сизе_типе пос, сизе_типе н = нпос)

Додаје н знакова из индекса, поз у главни низ. Пример:

стринг стрЦол=низ('Волим');
стрЦол=стрЦол.додати(јеси ли тако, 2, 4);
цена<<стрЦол<< ' н';

Исход: Волим те. И овде би се направио изузетак, види касније.

Додељивање

басиц_стринг&доделити(цонстбасиц_стринг&п)

Додељује објекат низа аргумената главном низу, замењујући било који садржај који је тамо био.

стринг стрЦол1=низ('Волим те');
стринг стрЦол2=низ('Потребан сам јој');
стрЦол1=стрЦол1.доделити(стрЦол2);
цена<<стрЦол1<< ' н';

Исход: Потребан сам јој.

басиц_стринг&доделити(цонстцхарТ*с)

Додељује аргумент дословни низ главном низу, замењујући било који садржај који се тамо налазио.

стринг стрЦол=низ('Волим те');
стрЦол=стрЦол.доделити('Потребан сам јој');
цена<<стрЦол<< ' н';

Исход: Потребан сам јој.

басиц_стринг&доделити(Инитилизер_лист<цхарТ>)

Додељује аргумент листе иницијализатора главном низу,замењујући било који садржај који се тамо налазио.
[цц ланг='ц'побегао='истина'ширина='780']
стринг стрЦол=низ('Волим те');
стрЦол=стрЦол.доделити({'С','х','И','','н','И','И','д','с','','м','И',' 0'});
цена<<стрЦол<< ' н';

Исход: Потребан сам јој. Добро је увек додати нул, 0 на крају листе знакова, да бисте формирали литерал низа.

басиц_стринг&доделити(цонстцхарТ*с,сизе_типе н)

Додељује првих н знакова аргумента дословног низа главном низу, замењујући било који садржај који се тамо налазио.

стринг стрЦол=низ('Волим те');
стрЦол=стрЦол.доделити('Потребан сам јој', 9);
цена<<стрЦол<< ' н';

Исход: Треба јој.

басиц_стринг&доделити(сизе_типе н,цхарТ ц)

Додељује аргумент од н истих знакова главном низу, замењујући било који садржај који је тамо био.

стринг стрЦол=низ('Волим те');
стрЦол=стрЦол.доделити(4, 'И');
цена<<стрЦол<< ' н';

Излаз: ееее

басиц_стринг&доделити(цонстбасиц_стринг&п,сизе_типе поз,
сизе_типе н=нпос)

Додељује н знакова аргумента објекта низа, почевши од пос, главном низу, замењујући било који садржај који је тамо постојао.

стринг стрЦол=низ('Волим те');
стрЦол=стрЦол.доделити('Потребан сам јој', 4, 5);
цена<<стрЦол<< ' н';

Исход: потребе. Направио бих изузетак - видети касније.

Убацивање

басиц_стринг&уметнути(сизе_типе поз, цонстбасиц_стринг&п)

Убацује аргумент објекта низа у главни низ, у индексу, поз.

стринг стрЦол1=низ('Волим те');
стринг стрЦол2=низ('мржња и');
стрЦол1=стрЦол1.уметнути(2,стрЦол2);
цена<<стрЦол1<< ' н';

Исход: Мрзим и волим те. Направио бих изузетак - видети касније.

басиц_стринг&уметнути(сизе_типе пос1, цонстбасиц_стринг&
п,сизе_типе пос2,сизе_типе н=нпос)

Убацује дужину од н знакова из пос2 аргумента објекта стринга у главни низ, у индексу, пос1.

стринг стрЦол1=низ('Волим те');
стринг стрЦол2=низ('мржња, жеља и потреба');
стрЦол1=стрЦол1.уметнути(2,стрЦол2, 6, 9);
цена<<стрЦол1<< ' н';

Исход: Желим те и волим.

итератор инсерт (цонст_итератор п, цхарТ ц)

Убацује одређени знак, који је аргумент, у положај на који указује итератор. Враћа итератор за позицију ново уметнутог знака.

стринг стрЦол=низ('Волим те');
басиц_стринг<цхар> ::итераторитер=стрЦол.започети();
++итер; ++итер; ++итер; ++итер; ++итер; ++итер;
басиц_стринг<цхар> ::итератормреже=стрЦол.уметнути(итер, 'д');
цена<< *мреже<< ' н';
цена<<стрЦол<< ' н';

Излаз је:

'Д'

Волео сам те

итератор инсерт (цонст_итератор п, сизе_типе н, цхарТ ц)

Убацује н истог карактера аргумента, у положај, на који указује итератор. Враћа итератор за позицију почетка нових уметнутих истих знакова.

стринг стрЦол=низ('Таб ин тхе ланд.');
басиц_стринг<цхар> ::итераторитер=стрЦол.започети();
++итер; ++итер; ++итер;
басиц_стринг<цхар> ::итератормреже=стрЦол.уметнути(итер, 2, 'или');
цена<< *мреже<< ' н';
цена<<стрЦол<< ' н';

Излаз је:

'или'

Табу у земљи.

басиц_стринг&уметнути(сизе_типе поз, цонстцхарТ*с)

Убацује литерал низа аргумената у индекс, пос у главни низ.

стринг стрЦол=низ('Таб ин тхе ланд.');
стрЦол=стрЦол.уметнути(3, 'оо');
цена<<стрЦол<< ' н';

Резултат: Табу у земљи.

басиц_стринг&уметнути(сизе_типе поз, цонстцхарТ*с,сизе_типе н)

Убацује првих н знакова литерал аргумента стринг, у индекс, поз у главни низ.

стринг стрЦол=низ('Таб ин тхе ланд.');
стрЦол=стрЦол.уметнути(3, 'оооо', 2);
цена<<стрЦол<< ' н';

Резултат: Табу у земљи.

Замена

басиц_стринг&заменити(сизе_типе пос1,сизе_типе н1, цонстбасиц_стринг&п))

Замењује н1 знакова у главном објекту низа из индекса, пос1, са објектом низа аргумената.

стринг стрЦол1=низ('Волим те');
стринг стрЦол2=низ('мрзим те и');
стрЦол1=стрЦол1.заменити(2, 4,стрЦол2);
цена<<стрЦол1<< ' н';

Исход: Мрзим тебе и тебе. Направио бих изузетак - видети касније.

басиц_стринг&заменити(сизе_типе пос1,сизе_типе н1, цонстбасиц_стринг&
п,сизе_типе пос2,сизе_типе н2=нпос)

Замењује н1 знакова у главном објекту низа из индекса, пос1, са н2 знака објекта низа аргумената из индекса, пос2.

стринг стрЦол1=низ('Волим те');
стринг стрЦол2=низ('мрзимо њега и њу');
стрЦол1=стрЦол1.заменити(2, 4,стрЦол2, 3, 12);
цена<<стрЦол1<< ' н';

Исход: Мрзим њега и тебе.

басиц_стринг&заменити(сизе_типе пос1,сизе_типе н1, цонстцхарТ*с,
сизе_типе н2)

Замењује н1 знакова у главном објекту низа из индекса, пос1, са првих н2 знака аргумента дословног низа.

стринг стрЦол1=низ('Волим те');
стрЦол1=стрЦол1.заменити(2, 4, 'мрзи њега и њу', 12);
цена<<стрЦол1<< ' н';

Исход: Мрзим њега и тебе.

басиц_стринг & реплаце (сизе_типе пос, сизе_типе н, цонст цхарТ* с)

Замењује н знакова у главном објекту низа из индек, пос, са дословним аргументом стринг.

стринг стрЦол1=низ('Волим те');
стрЦол1=стрЦол1.заменити(2, 4, 'мрзи га и');
цена<<стрЦол1<< ' н';

Исход: Мрзим њега и тебе.

басиц_стринг&заменити(сизе_типе пос1,сизе_типе н1,сизе_типе н2,цхарТ ц)

Замењује н1 знакове у главном објекту низа из индекса, пос1, са н2 истог карактера аргумента.

стринг стрЦол1=низ('Тамо је лош таблет.');
стрЦол1=стрЦол1.заменити(9, 3, 2, 'или');
цена<<стрЦол1<< ' н';

Излаз: Лош табу ..

брисање итератора (цонст_итератор п)

Уклања знак на месту на које показује итератор; затим враћа позицију итератора, коју сада заузима знак који је био поред овог знака (или крај ()). Следећи код то илуструје:

стринг стрЦол=низ('а б ц д');
басиц_стринг<цхар> ::итераторитер=стрЦол.започети();
++итер; ++итер;
стрЦол.избрисати(итер);
цена<<стрЦол[0] << '' <<стрЦол[1] << '
'
<<стрЦол[2]<< ' н';

Излаз: а б д

басиц_стринг&избрисати(сизе_типе поз= 0,сизе_типе н=нпос)

Уклања н знакова из индекса, поз.

стринг стрЦол=низ('а б ц д');
стрЦол.избрисати(1, 2);
цена<<стрЦол[0] << '' <<стрЦол[1] << ' н';

Излаз: а д

воид пусх_бацк (графикон ц)

Да бисте додали један знак на крају низа:

стринг стрЦол=низ('а б ц д');
стрЦол.потисне('5');
цена<<стрЦол<< ' н';

Излаз: абцд5

воид поп_бацк ()

Уклања последњи знак без враћања. Величина низа се смањује за 1.

стринг стрЦол=низ('абцде');
стрЦол.поп_бацк();
цена<<стрЦол<< ' н';

Излаз: абцд

воид свап (басиц_стринг & с)

Литерале два стринг објекта могу се заменити.

стринг стрЦол1=низ(<а ид='пост-69618 -__ ДдеЛинк__781_3724385525'>до>'абцде');
стринг стрЦол2=низ('1234567');
стрЦол1.свап(стрЦол2);
цена<<стрЦол1<< ' н';
цена<<стрЦол2<< ' н';

Излаз је:

'1234567'
'абцде'

Стринг Оператионс

цонст цхарТ* ц_стр () цонст ноекцепт

Враћа показивач на први елемент низа. Показивач се може повећати.

цонстстринг стрЦол=низ('абцде');
цонст цхар*п=стрЦол.ц_стр();
цена<< *п<< ' н';
++п;
цена<< *п<< ' н';

Излаз је:

до
б

Због другог састава у наслову, програм не може променити ниједан знак у низу. Изградњи претходи конст.

цонст цхарТ* дата () цонст ноекцепт

Враћа показивач на први елемент низа. Показивач се може повећати.

цонстстринг стрЦол=низ('абцде');
цонст цхар*п=стрЦол.података();
цена<< *п<< ' н';
++п;
цена<< *п<< ' н';

Излаз је:

до
б

Због другог састава у наслову, програм не може променити ниједан знак у низу. Изградњи претходи конст.

основни_стринг подстр. (величина_тип пос = 0, величина_тип н = нпос) конст

Враћа објекат низа од н знакова за подниз који почиње од индекса, поз.

цонстстринг стрЦол=низ('абцдефгхиј');
цонстстринг ретСтр=стрЦол.субстр(2, 4);
цена<<ретСтр<< ' н';

Излаз: цдеф

финд () Функције члана

сизе_типе финд (цонст басиц_стринг & стр, сизе_типе пос = 0) цонст ноекцепт

Тражи објект подниза који почиње од индекса, поз. Ако се пронађе, враћа почетак подниза у главном низу.

стринг стрЦол=низ('Ми смо свет!');
стринг стрЦол1=низ('тхе');
интна једном=стрЦол.пронаћи(стрЦол1, 2);
цена<<на једном<< ' н';

Излаз:

индекс: 7
Враћа -1, када није пронађено.

сизе_типе финд (цонст цхарТ* с, сизе_типе пос = 0) цонст

Тражи литерал подниза који почиње од индекса, поз. Ако се пронађе, враћа почетак подниза у главном низу.

стринг стрЦол=низ('Ми смо свет!');
интна једном=стрЦол.пронаћи('су', 0);
цена<<на једном<< ' н';

Пошто је пос = 0 подразумевана вредност, 0 у аргументу се могло изоставити.

Излаз: 3

Враћа -1, када није пронађено.

сизе_типе финд (цонст цхарТ* с, сизе_типе пос, сизе_типе н) цонст

Тражи првих н знакова литерала подниза који почиње од индекса, поз. Ако се пронађе, враћа почетак подниза у главном низу.

стринг стрЦол=низ('Највећи дечак');
интна једном=стрЦол.пронаћи('већи', 1, 3);
цена<<на једном<< ' н';

Излаз: 4

Враћа -1, када није пронађено.

сизе_типе финд (цхарТ ц, сизе_типе пос = 0) цонст

Тражи карактер, ц почиње од индекса, поз. Ако се пронађе, враћа почетак подниза у главном низу. Ако није пронађен, враћа -1.

стринг стрЦол=низ('Ми смо свет!');
интна једном=стрЦол.пронаћи('Са');
цена<<на једном<< ' н';

Излаз: -1

Следеће функције обрнутог финд () постоје:

сизе_типе рфинд(цонстбасиц_стринг&п,сизе_типе поз=нпос) цонстноекцепт;
сизе_типе рфинд(цонстцхарТ*с,сизе_типе поз=нпос) цонст;
сизе_типе рфинд(цонстцхарТ*с,сизе_типе поз,сизе_типе н) цонст;
сизе_типе рфинд(цхарТ ц,сизе_типе поз=нпос) цонст;

Упоредне функције чланова

инт цомпаре (цонст басиц_стринг & стр) цонст ноекцепт

Упоређује објекат стринг аргумента са објектом главног низа. Ако се главни низ појави пре аргумента (у речнику), он враћа позитиван број. Ако се појави иза главног низа, враћа негативан број. Ако су два низа иста, враћа нулу.

стринг стрЦол1=низ('гомила');
стринг стрЦол2=низ('људи');
интна једном=стрЦол1.упоредити(стрЦол2);
цена<<на једном<< ' н';

Излаз: -13

инт пореди (цонст цхарТ* с) цонст

Исто као горе, али аргумент је литерал низа.

стринг стрЦол1=низ('људи');
интна једном=стрЦол1.упоредити('људи');
цена<<на једном<< ' н';

Излаз: 0

Стринг Операторс

Ови оператори су применљиви на стринг објекте, а не нужно на стринг литерал.

+

Повезује два стринг објекта и враћа повезивање.

стринг стрЦол1=низ('плес на');
стринг стрЦол2=низ(' Месец');
стринг стрЦол=стрЦол1+стрЦол2;
цена<<стрЦол<< ' н';

Резултат: плес на месецу.

==

Враћа 1 за труе, ако су објекти низа исти; и нула за лажно, ако нису.

стринг стрЦол1=низ('плес на');
стринг стрЦол2=низ(' на Месецу');
боол бл=стрЦол1==стрЦол2;
цена<<бл<< ' н';

Излаз: 0

! =

Враћа 1 ако објекти низа нису исти, и нулу ако јесу.

стринг стрЦол1=низ('плес на');
стринг стрЦол2=низ(' на Месецу');
боол бл=стрЦол1! =стрЦол2;
цена<<бл<< ' н';

Излаз: 1

<

Враћа 1, ако је леви операнд мањи од десног према речнику, или нула ако није.

стринг стрЦол1=низ('плес на');
стринг стрЦол2=низ(' на Месецу');
боол бл=стрЦол1<стрЦол2;
цена<<бл<< ' н';

Излаз: 0

За обичне знакове у Ц ++, у растућем редоследу, бројеви долазе испред великих слова, који долазе испред малих слова. Размак долази испред нуле и сви они.

Ц ++ Типови знакова главног низа

цхар

Тип цхар је оригинални Ц ++ тип и обично би чувао знак у 8 бита.

цхар16_т

Ово складишти знак у 16 ​​бита.

цхар32_т

Ово складишти знак у 32 бита.

вцхар_т

цхар16_т и цхар32_т су широки знакови. вцхар_т је широк карактер који је власнички и дефинисан имплементацијом.

Ове врсте се називају особине. Међутим, Ц ++ их технички назива специјализацијама особина. Овај чланак се фокусирао на тип знакова. Приступ осталим врстама је мало другачији - погледајте касније.

Друге функције члана низ операција

Потписи других функција рада са низовима су:

сизе_типе финд_фирст_оф(цонстбасиц_стринг&п,сизе_типе поз= 0) цонстноекцепт;
сизе_типе финд_фирст_оф(цонстцхарТ*с,сизе_типе поз,сизе_типе н) цонст;
сизе_типе финд_фирст_оф(цонстцхарТ*с,сизе_типе поз= 0) цонст;
сизе_типе финд_фирст_оф(цхарТ ц,сизе_типе поз= 0) цонст;
сизе_типе финд_ласт_оф(цонстбасиц_стринг&п,сизе_типе поз=нпос) цонстноекцепт;
сизе_типе финд_ласт_оф(цонстцхарТ*с,сизе_типе поз,сизе_типе н) цонст;
сизе_типе финд_ласт_оф(цонстцхарТ*с,сизе_типе поз=нпос) цонст;
сизе_типе финд_ласт_оф(цхарТ ц,сизе_типе поз=нпос) цонст;
сизе_типе финд_фирст_нот_оф(цонстбасиц_стринг&п,сизе_типе поз= 0) цонстноекцепт;
сизе_типе финд_фирст_нот_оф(цонстцхарТ*с,сизе_типе поз,сизе_типе н) цонст;
сизе_типе финд_фирст_нот_оф(цонстцхарТ*с,сизе_типе поз= 0) цонст;
сизе_типе финд_фирст_нот_оф(цхарТ ц,сизе_типе поз= 0) цонст;
сизе_типе финд_ласт_нот_оф(цонстбасиц_стринг&п,сизе_типе поз=нпос) цонстноекцепт;
сизе_типе финд_ласт_нот_оф(цонстцхарТ*с,сизе_типе поз,сизе_типе н) цонст;
сизе_типе финд_ласт_нот_оф(цонстцхарТ*с,сизе_типе поз=нпос) цонст;
сизе_типе финд_ласт_нот_оф(цхарТ ц,сизе_типе поз=нпос) цонст;

Закључак

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