Прелазне секвенце¶
У програмском језику 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;
}
Са осталим прелазним секвенцама из табеле дате у прилогу упознаваћеш се током рада, када се за то укаже потреба.