Прелазне секвенце

У програмском језику 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;
}

Са осталим прелазним секвенцама из табеле дате у прилогу упознаваћеш се током рада, када се за то укаже потреба.