Разлика између карактера низа и низа

Аутор: Laura McKinney
Датум Стварања: 1 Април 2021
Ажурирати Датум: 6 Може 2024
Anonim
Влад А4 и Директор против СИРЕНОГОЛОВОГО
Видео: Влад А4 и Директор против СИРЕНОГОЛОВОГО

Садржај


Ц ++ подржава обоје, Низ знакова и низ, јер Ц ++ има знатне користи од употребе оба. Али, немогућност рада са низом знакова повећава развој класе. И низ знакова и низ садрже низ знакова. Међутим, суштинска разлика између низова знакова и низа је та што „низ знакова“ не може да се користи са стандардним операторима, док се „стринг“ објектима може управљати са стандардним оператерима. Проучимо остале разлике између низова знакова и низа.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеНиз знаковаНиз
ОсновниНиз знакова је збирка променљивих, типа карактера.Стринг је класа, а променљиве стринг-а су предмет класе "стринг".
Синтаксацхар арраи_наме;стринг стринг_наме;
ИндексирањеПојединачном лику у низу знакова може приступити његов индекс у низу.У низу одређеном карактеру може се приступити функција "стринг_наме.цхарАт (индекс)".
Тип податакаНиз карактера не дефинира врсту података.Низ дефинира врсту података у Ц ++.
ОператориОператори у Ц ++ не могу се применити на низ знакова.На стринг можете примијенити стандардног Ц ++ оператера.
ГраницаГранице низа се лако прекорачују.Границе се неће прекорачити.
ПриступБрзи приступ.Споро приступање.


Дефиниција карактера низа


Низ знакова је збирка варијабли типа „цхар“; то може бити једнодимензионални низ или дводимензионални низ. Назива се и „нулл терминатед стринг“. Низ знакова је низ знакова који се чувају у узастопним меморијским адресама. У низу знакова одређеном карактеру може се приступити по његовом индексу. „Нулл цхарацтер“ завршава низ знакова “.

Узмимо пример низа знакова: -

име цхар = {А, ј, а, и, 0}; ор цхар наме = "Ајаи";

Овде је „цхар“ тип карактера, „наме“ је променљиво име низа знакова. Показала сам два начина иницијализације низа знакова. У првом методу нулл се изричито спомиње, а у другом методу преводилац аутоматски убацује нулл.

Крај низа је увек нулани знак; то је завршни карактер низова знакова. Низ карактера није уграђени тип података; стварамо низ знакова декларирањем. Не можете применити стандардне операторе на низу знакова. За рад на низу знакова постоје неке уграђене функције као што су (стрлен (), стрлвр (), струпр (), стрцат ()). Како се стандардни оператери не могу применити на низ знакова, они не могу учествовати у било ком изразу.


Показивач знакова на низ знакова такође се може креирати.

Да разумемо са примером.

цхар с1 = "Здраво"; цхар с2 = "Господине"; с1 = с1 + с2; // оператери грешака не могу се применити с2 = с1; // грешка Показивач знакова цхар * с = "Јутро"; цхар * п; п = с; // извршава

У горњем примеру смо декларисали два карактера с1, с2 и два карактера са и п. Низ иницијализације карактеризирани су с1 и с2, можемо видјети да ни оператер за додавање (+) нити оператер додјеле не раде на низу знакова. Али карактерски показивач може бити додељен другом показивању карактера.

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

Дефиниција стринга

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

  • Први је „доследност“, низови знакова сами по себи нису типови података.
  • Друго је „практичност“, не можете користити стандардне операторе у низу знакова.
  • Треће је "безбедност", границе поља се лако прекорачују.

Разумејмо низове са примером.

стринг с1; с1 = "Здраво"; стринг с2 ("Добро јутро"); стринг с3 = "Хеннери"; стринг с4;

У горњој декларацији су деклариране четири варијабле низа или објекти (с1, с2, с3, с4). У горњој декларацији приказао сам три начина иницијализације низа. Низ с1 је деклариран и затим одвојено иницијализиран. Низ с2 иницијализира конструктор класе „Стринг“. Низ с3 се иницијализира у вријеме декларације као што то чини уобичајени тип података. Стандардне операторе можемо применити на стринг варијабле.

с4 = с1; // додељивање једног низа објекта другом с4 = с1 + с2; // додавање два низа и чување резултата у трећем низу ако (с3> с2) // упоређивање две струне жице с5 (с1); креирање новог стринг-објекта помоћу постојећег стринг-објекта

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

Приступ низу је спор у поређењу са низом знакова или низом који престаје са нулом.

Кључне разлике између низова знакова и жице

  1. Низ знакова је збирка варијабли које су од типа карактера. Стринг је класа која је инстанцирана за проглашавање струна.
  2. Помоћу индексне вредности можете приступити лику из карактера. С друге стране, ако желите да приступите одређеном знаку у низу, можете му приступити помоћу функције стринг-а_наме.цхарАт (индекс).
  3. Како низ није дататип слично, тако и карактер није. С друге стране, Стринг као класа делује као референтни тип, стога се може рећи да је Стринг тип података.
  4. Не можете применити ниједног оператора у низу знакова док операторе можете применити на Стринг.
  5. Будући да низ знакова низа има фиксну дужину и његове границе се могу лако прекорачити. Где Стринг нема никакве границе.
  6. Елементи матрице се чувају на непрестаној меморијској локацији, па им се може приступити брже од варијабле низа.

Закључак:

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