Прелазне секвенце¶
У програмском језику C често се користе прелазни карактери или прелазне
секвенце (енгл. escape characters или escape sequences), испред којих увек
претходи обрнута коса црта \. Све прелазне секвенце наведене су у
табели прелазних секвенци у прилогу, а у
овој лекцији учићеш о онима које ћеш најчешће и користити.
Обрнута коса црта, наводник, апостроф и упитник¶
У лекцији о знаковном типу података напоменуто је да се карактери задају између два апострофа, осим карактера обрнута коса црта, наводник, апостроф и упитник. Навођење ових карактера решено је управо прелазним секвенцама тако што се испред карактера наводи обрнута коса црта.
Напиши програм у програмском језику C у којем су иницијализоване четири
знаковне променљиве a, b, c и d са карактерима обрнута коса црта,
наводник, апостроф и упитник. Ако не користиш прелазне секвенце, компајлер ће
пронаћи много грешака током процеса превођења:
#include <stdio.h>
int main(void)
{
char a = '\', b = '"', c = ''', d = '?'; // neispravno
return 0;
}
Да би исправио грешке у програму, потребно је да ставиш обрнуту косу црту пре навођења обрнуте косе црте, наводника, апострофа и упитника чиме си креирао прелазне секвенце.
#include <stdio.h>
int main(void)
{
char a = '\\', b = '\"', c = '\'', d = '\?'; // ispravno
return 0;
}
Нови ред¶
Прелазна секвенца \n користи се за прелазак курсора у нови ред.
Напиши програм у програмском језику C који на стандардни излаз исписује следећи текст:
Fondacija Petlja
Koste Glavinica 2, Beograd
loop@petlja.org
Ако програм напишеш овако:
#include <stdio.h>
int main(void)
{
printf("Fondacija Petlja");
printf("Koste Glavinica 2, Beograd");
printf("loop@petlja.org");
return 0;
}
на стандардном излазу исписаће се текст записан у једном реду, јер у програму ниси навео прелазну секвенцу за прелазак у нови ред.
Fondacija PetljaKoste Glavinica 2, Beogradloop@petlja.org
Када желиш да курсор пређе у нови ред, потребно је да наведеш прелазну секвенцу
\n:
#include <stdio.h>
int main(void)
{
printf("Fondacija Petlja\n");
printf("Koste Glavinica 2, Beograd\n");
printf("loop@petlja.org");
return 0;
}
па ће се на стандардном излазу коректно исписати тражени текст:
Fondacija Petlja
Koste Glavinica 2, Beograd
loop@petlja.org
То такође значи да нема потребе да функцију printf() позиваш три пута и да би
се исти текст на стандардном излазу исписао следећим програмом:
#include <stdio.h>
int main(void)
{
printf("Fondacija Petlja\nKoste Glavinica 2, Beograd\nloop@petlja.org");
return 0;
}
Табулатор¶
Као и у процесорима и едиторима текста, табулатор можеш користити када
желиш да прикажеш податке на стандардном излазу тачно један испод другог, на
пример табеларно. У програмском језику C, један притисак на тастер TAB
симулира прелазна секвенца \t.
Напиши програм у програмском језику C који на стандардни излаз исписује следеће податке:
Ime Prezime Razred
Ana Anic II
Nikola Nikolic III
Marko Maric IV
Milica Milicic I
Овај задатак можеш решити пишући тражене податке један испод другог у
printf() функцијама:
#include <stdio.h>
int main(void)
{
printf("Ime Prezime Razred\n");
printf("Ana Anic II\n");
printf("Nikola Nikolic III\n");
printf("Marko Maric IV\n");
printf("Milica Milicic I");
return 0;
}
Међутим, у каснијем раду, подаци ће бити променљиве, па нећеш унапред знати
колико ће карактера који податак заузимати. Тада је решење коришћење прелазне
секвенце \t, односно табулатора. Према томе, претходни програм можеш написати
користећи табулатор, без потребе да мануелно распоређујеш податке један испод
другог.
#include <stdio.h>
int main(void)
{
printf("Ime\tPrezime\tRazred\n");
printf("Ana\tAnic\tII\n");
printf("Nikola\tNikolic\tIII\n");
printf("Marko\tMaric\tIV\n");
printf("Milica\tMilicic\tI");
return 0;
}
Са осталим прелазним секвенцама из табеле дате у прилогу упознаваћеш се током рада, када се за то укаже потреба.