Рецоммендед, 2020

Избор Уредника

Разлика између низа знакова и низа

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

Цомпарисон Цхарт

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


Дефиниција низа знакова

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

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

 цхар наме [] = {'А', 'ј', 'а', 'и', '\ т или цхар наме [] = "Ајаи"; 

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

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

Може се креирати и показивач знакова на низ знакова.

Хајде да то схватимо са примером.

 цхар с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. Елементи низа се складиште у непрекидној меморијској локацији, тако да се може приступити брже од стринг варијабле.

Закључак:

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

Top