strings c with examples
Интензиван поглед на основе гудача на Ц ++.
У овој Ц ++ серији, до сада смо углавном разговарали о нумеричким низовима у Ц ++. У овом упутству ћемо разговарати о манипулацији низовима знакова које једноставно називамо „жице“.
Низ знакова је углавном низ у стилу Ц који Ц ++ подржава. Поред низова знакова у стилу Ц, Ц ++ такође подржава класу низова „стд :: стринг“. Даље, у овом упутству ћемо разговарати о типовима низова као и о разлици између њих и о програмирању сваког типа у језику Ц ++.
=> Пазите на комплетну листу водича за Ц ++ у овој серији.
Шта ћете научити:
Низови знакова (жице у стилу Ц)
Низ у стилу ц је низ знакова који се завршава нулом знака „ 0“. Стога можемо дефинирати низ типа цхар и димензије или величину низова, а затим га можемо иницијализирати у низ или низ знакова.
Имајте на уму да је преводилац тај који завршава низ са нулл знаком, па ако низ знакова иницијализујемо низом (у двоструком наводнику “”), онда морамо оставити додатни простор за нулл знак док декларишемо величину низа .
Узмимо неколико примера декларисања и иницијализације низова знакова.
char firstStr() = 'This is Cstyle string'; char secStr(100) = {'s','o','f','t','w','a','r','e',' ','t','e','s','t','i','n','g',' ','h','e','l','p',' '}; char thirdStr() = {'h','e','l','l','o',' '};
Све горе наведене дефиниције су важеће дефиниције низа у Ц стилу у Ц ++. Имајте на уму да можемо да декларишемо стварну величину или да величину оставимо празну како би компајлер могао да прими величину у зависности од низа који смо иницијализовали.
Хајде да преузмемо Пример читања и писања низа знакова у Ц ++
Доље је дат једноставан програм који чита низ помоћу цин-а и избацује га помоћу цоут-а.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Излаз 1:
СофтвареТестингХелп.цом
унели сте: СофтвареТестингХелп.цом
Излаз 2:
Ово је низ у стилу Ц.
унели сте: Ово
Ако упоредимо оба излаза, видећемо да је када смо унели први низ „СофтвареТестингХелп.цом“ одштампан такав какав јесте.
Али у другом излазу, иако смо стринг унијели као „Ово је низ у стилу Ц“, излаз је био само „Ово“.
Разлика у излазу је зато што се оператер '>>' цин који се користи за читање низа третира као функција 'сцанф' функције Ц, која чита само до нађеног простора. Отуда је „цин витх >>“ погодан за читање низова знакова без размака.
најбоље складиштење у облаку за велике датотеке
Стога, док је пронађен други излазни простор, функција цин га је узела као крај низа и прочитала само прву реч.
Да би прочитао читав ред знакова, укључујући размаке, Ц ++ користи функцију „гет“.
Пример програма који користи функцију гет приказан је испод:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Излаз:
Ово је софтвареТестингхелп.цом
унели сте: Ово је софтвареТестингхелп.цом
Као што је приказано у примеру , гет функција цин користи два аргумента. Први аргумент је променљива низа знакова у којој се низ чита, док је други аргумент максимална величина низа.
Жице у стилу Ц такође подржавају бројне функције низова које омогућавају корисницима да манипулишу жицама. Ове функције су дефинисане у заглављу „цстринг“.
У наставку доносимо табелу у којој су наведене разне функције низова које се могу користити за манипулисање низовима у стилу Ц.
Не Функција Аргументи Опис један стрцпи с1, с2 Копира низ с2 у низ с1 два стрцат с1, с2 Додаје или спаја низ с2 на крај низа с1 3 стрлен с1 Приказује дужину низа с1 4 стрцмп с1, с2 Приказује 0: с1 и с2 су исти
<0:s1 > 0: с1> с2 5 стрцхр с1, гл Враћа показивач на прво појављивање знака цх у низу с1 и низ одатле надаље 6 стрстр с1, с2 Враћа прво појављивање низа с2 у низу с1
Следећи програм приказује употребу неких од ових функција у језику Ц ++:
#include #include using namespace std; int main() { char firstStr(50) = 'This is softwareTestingHelp.com'; char secStr(50) = 'a testing platform'; int len = strlen(firstStr); cout<<'Length of firstStr : '< Излаз:
Дужина фирстСтр: 31
Резултантни низ (сецСтр): тестирање софтвера
Упоређивање фирстСтр и сецСтр: -31
Спојени сецСтр: Тестирање софтвера за вас
Прва појава и у фирстстр на: с је софтвареТестингХелп.цом
Стринг класа у Ц ++
Низ у Ц ++-у који је дефинисан класом “стд :: стринг” представља представљање тока знакова у објекту. Другим речима, класа Стринг је колекција објеката у низу. Ова класа низова је део стд простора имена и дефинисана је у заглављу „стринг.х“.
Размотримо неке од основних разлика између класе низа и низа знакова.
- Иако су низови знакова о којима смо горе говорили статички додељени током времена компајлирања, низови су објекти и стога се могу динамички доделити.
- Како су низови знакова по природи статични, не могу се смањити или проширити када се једном дефинишу. Дакле, ако имамо низ знакова величине 100, а ја сам га иницијализовао речју „Здраво“, преостали простор се губи.
Цхар мистр (100) = 'Здраво';
Овде је изгубљено преосталих 95 локација.
Супротно томе, стринг објекти су динамичне природе и заузимаће тачан простор за вредност.
- Низ карактера је бржи по перформансама, док су низови спорији.
- Низ знакова има неколико функција које раде на њима и њима се може манипулисати. Стринг класа има бројне функције, укључујући функције итератора.
Ово су неке од основних разлика између низа знакова и класе објеката низа.
Даље, видећемо неколико примера класе стринга заједно са неким основним операцијама које се изводе на објектима класе стринга.
Пример за декларисање и иницијализацију класе стринга.
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<У горњем примеру, декларисали смо и иницијализовали објект низа користећи класу „стринг“. Ово је једноставан пример. Сада ћемо имати програм за читање низа од корисника, а такође ћемо демонстрирати неколико функција низа, укључујући проналажење дужине и упоређивање два низа.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Излаз:
Унесите низ
СофтвареТестингХелп
Унети низ је: СофтвареТестингХелп
Дужина низа стр је: 19
Две жице су једнаке
Нови стр1: СофтвареТестингХелп.цом
стр нова дужина: 0
На горњој илустрацији користили смо бројне функције низа за манипулацију жицама. Након декларације низа користимо функцију „гетлине“ класе низа за читање низа са стандардног улаза.
Једном када читамо низ, проналазимо његову дужину помоћу функције „ленгтх“. Ако треба да упоредимо два низа да бисмо проценили да ли су једнаки или не, можемо користити функцију „упоређивање“ класе низова. Ако функција врати 0, тада су два низа једнака, у супротном функција враћа вредност која није нула.
Још једна функција је додавање другог низа на крај постојећег низа. Ово је функција „додавања“. У овом примеру додајемо ’.цом’ већ постојећем низу стр1 са вредношћу „тестирање софтвера“.
Последња функција у примеру је функција цлеар која се користи за брисање садржаја објекта који позива. У овом примеру бришемо садржај стр објекта тако да његова дужина постане 0.
Закључак
У овом упутству покрили смо низ знакова који се такође назива и низовима у стилу Ц, заједно са основама класе стрингова. Стринг класа долази са више услужних програма попут класе итератор, јер је класа контејнера.
О класи стрингова и њеним функцијама видећемо више у нашим предстојећим туторијалима за СТЛ !!
=> Посетите овде да бисте видели Ц ++ серију обуке за све.
Препоручено читање
- Сортирање љуске на Ц ++ са примерима
- Функције датума и времена у Ц ++ са примерима
- Јава Стринг са Стринг бафером и Стринг Буилдер Туториал
- Сортирање избора у Ц ++ са примерима
- Питхон Стринг функције
- Водич за Питхон ДатеТиме са примерима
- Изрежи команду у Унику са примерима
- 70+ НАЈБОЉИХ Водича за Ц ++ за БЕСПЛАТНО учење Ц ++ програмирања