Дефиниција и иницијализација стринга¶
Стринг представља низ карактера од нула или више знакова који се завршава null карактером.
Размотримо следећу наредбу:
char ime[8];
Овом наредбом се дефинише низ од 8 елемената типа char.
Како стринг мора да се заврши са ’\0’ карактером, најдужи стринг који може да се упише у низ може да има 7 знакова.
Размотримо следећу наредбу:
char ime[8] = {'M', 'i', 'k', 'a', '\0'};

Ако се у стринг упише име од четири знака, остатак се попуњава празним знацима (null карактером). На исти начин, рецимо, стринг „Zdravo!” се представља као знаковни низ:

Стринг може да се користи као иницијализатор знаковног низа.
char pozdrav[] = "Zdravo!";
… је исто што и…
char pozdrav[] = {'Z' , 'd' , 'r' , 'a' , 'v' , 'o' , '!' , '\0' };
Иницијализујмо два низа карактера:
char niz1[] = {'P', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'r', 'a', 'n', 'j', 'e'};
char niz2[] = {'P', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'r', 'a', 'n', 'j', 'e', '\0'};

У чему је разлика између niz1
и niz2
?
Разлика између ова два карактера је У null карактеру. niz1
је обичан једнодимензионални низ карактера, док niz2
представља стринг.
Дужина знаковног низа не сме да буде мања од дужине стринга увећане за 1 због null карактера.
Као што смо видели, низ знакова се може иницијализовати на више начина, нпр…
char poruka1[] = "Pozdrav svima!";
или
char poruka2[15] = "Pozdrav svima!";
Ова два стринга су у меморији смештена на идентичан начин.


Пошто је по дефиницији сâм назив низа показивач, стринг се такође може иницијализовати преко показивача на низ знакова: char *pokPoruka = „Pozdrav svima!”;


Пробај да одредиш који су стрингови исправно иницијализовани и зашто.
1. char niska1[30] = "Dobar dan";
2. char niska2[] = "Dobar dan";
3. char niska3[9] = "Dobar dan";
4.char pozdrav[] = {'Z' , 'd' , 'r' , 'a' , 'v' , 'o' , '!'};
Одговор:
Стринг под 1 је исправно иницијализован – остатак знакова до 30 се попуњава са празним знаковима ’\0’.
Стринг под 2 је исправно иницијализован – компајлер сâм одређује дужину простора за 10 карактера.
Стринг под 3 није исправно иницијализован – недостаје простор за завршни празан знак ’\0’.
Стринг под 4 није исправно иницијализован – недостаје завршни празан знак ’\0’ и зато ово није стринг већ само обичан низ карактера.