Стрингови (програмски језик C)

Шта је стринг?

Стринг је енглески појам који је преведен као „знаковни низ“, „низ знакова“, „ниска“, „литерал“; али се појам стринг користи чешће од превода. Један од основних задатака који рачунар извршава, поред рачунања је и рад са текстуалним подацима. За ту сврху се користе стрингови.

У програмском језику C стринг се посматра као низ знакова типа char при чему први знак има индекс (редни број) 0, па се често каже да је то „нулти елеменат“. Стрингови садрже ASCII знакове и пишу се под наводницима. Другим речима – сваки текст између наводника програмски језик C посматра као стринг (наводници не улазе у састав стринга, они служе само да кажу програмском језику C да то што је између њих јесте стринг!).

Грађа стринга

Сваки стринг у меморији заузима један или више бајтова који су смештени на узастопне локације у меморији почев од неке почетне адресе. Сваки стринг у C-у се може проматрати као низ елемената типа char. Погледајмо како би текст „Hello World!“ био смештен у меморији:

АДРЕСА 100 101 102 103 104 105 106 107 108 109 110 111
САДРЖАЈ H e l l o W o r l d !

У примеру је претпостављено да се први знак налази у меморији на локацији 100. Као што можемо приметити, иза последњег знака нашег стринга налази се посебан знак . Овај знак означава да је то крај стринга. Значи, за стринг који садржи n знакова потребно n+1 меморијских локација, тј. бајтова. Zнак  је заправо бајт чија је вредност 0. Tо није знак ‘0’; јер ASCII вредност знака ‘0’ је 48, а то је оно што се памти! Дакле, сваки текст између знакова „“ представља стринг, при чему се после последњег знака уписује знак  као ознака за крај стринга! Наравно, као и сви други објекти у програму (цели бројеви, реални бројеви…) мора се декларисати!

Декларација стринга

Стринг се декларише, у складу са већ реченим, као низ знакова (у даљем тексту ћемо користити израз поље, да бисмо означили низ узастопних локација у меморији где ће бити смештен низ знакова!) чију дужину задајемо према потреби, или је уопште не задајемо, ако одмах вршимо иницијализацију тог стринга. Нпр.

char MojGrad[] = "BEOGRAD";

Овиме смо декларисали променљиву MojGrad и у њу сместили текст ‘BEOGRAD’. Али, са друге стране, MojGrad је поље дужине 8 бајтова, јер у њега смештамо стринг од 7 знакова. Ево још једног примера:

char MojaUlica[60] = "Dositeja Obradovica";

Колика је дужина пољa MojaUlica? 60 бајтова. Али, у њега је уписан стринг дужине 19+1=20. Остатак простора остао је неискориштен, иако је резервисан. Ово нам омогућава да после у овo поље упишемо неки други стринг! Али, при томе морамо водити рачуна да највећи могући стринг може бити дугачак 59 знакова, јер укупно имaмо 60 знакова на располагању.

део текста преузет са адресе RAD SA STRINGOVIMA

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s