Professional Documents
Culture Documents
Npr. decimalna vrijednost koja predstavlja znak 'A' je 65. To znači da “casting-om” broja
65 u char tip podatka na ekranu moţemo ispisati znak 'A'. Također je casting-om
karaktera u int tip podatka moguće pronaći njegovu vrijednost u ASCII tabeli.
#include <iostream>
int main(){
// int u char
cout << char(65) << endl;
// char u int
cout << int('A');
Specijalni karakteri
Prva kolona ASCII tabele je rezervisana za specijalne znakove. Ovi znakovi imaju
različite uloge, ali najčešće su to neke smjernice o tome kako interpretirati dati tekst.
Tako recimo, znak koji ima decimalnu vrijednost 13 ("carriage return") označava da je to
kraj jednog reda u tekstu. Ovaj znak se u C++ programskom jeziku osim castingom
broja 13 u char tip podatka moţe predstaviti i sa '\n' karakterom.
#include <iostream>
int main(){
}
Nizovi znakova (karaktera)
#include <iostream>
int main(){
// Inicijalizacija polja
text[0] = 'P';
text[1] = 'o';
text[2] = 'r';
text[3] = 'u';
text[4] = 'k';
text[5] = 'a';
// Ispis
for (int i = 0; i < 6; i++)
cout << text[i];
U prethodnom primjeru ručno su inicijalizirana sva polja u nizu kako bi se tekst pohranio
u memoriju.
U ovom slučaju nam je unaprijed poznata veličina niza, pa je jednostavno izvršiti ispis
teksta na ekran.
Pošto zbog dizajna C++ jezika ta duţina nije uvijek poznata standard za čuvanje teksta
u memoriji je da se na kraj ovog niza doda specijalni karakter koji ima decimalnu
vrijednost 0 ili '\0' te se niz ispiše pomoću while petlje.
#include <iostream>
int main(){
// Ispis
int i = 0;
while (text[i] != '\0'){
cout << text[i];
i++;
}
// Novi red
cout << '\n';
Korištenjem while petlje i jednog brojača koji prolazi kroz svaki član niza jednostavno je
ispisati sve karaktere i zaustaviti se na karakteru '\0' kada on dođe na red. Karakter '\0'
se naziva terminirajući karakter i uloga mu je da označi kraj nekog niza karaktera.
Kada korištenjem ovog karaktera označimo kraj niza moguće je niz ispisati i
pomoću cout.
#include <iostream>
int main(){
// Ispis
cout << text;
}
Šta se desi ako nemamo karakter '\0' na kraju niza?
Pri ispisu niza znakova (karaktera) koji nemaju terminirajući karakter moguće je dobiti
razne neočekivane rezultate.
#include <iostream>
int main(){
// Ispis
cout << text;
U ovom slučaju smo imali sreće pa pristupom memoriji izvan granica niza nismo doveli
do pada programa već do ispisa nasumičnih znakova nakon poruke.
Dužina niza
Funkcija koja vraća broj karaktera (znakova) tako što izbroji sva polja do
terminirajućeg je strlen funkcija.
#include <iostream>
#include <cstring>
int main(){
Iako je veličina niza 7, ova funkcija će vratiti 6 kao duţinu niza pošto u proračun ne
uzima terminirajući karakter.
include <iostream>
#include <cstring>
int main(){
}
U biblioteci cstring već postoji funkcija koja će nam skratiti ovaj posao.
To je funkcija strcpy.
#include <iostream>
#include <cstring>
int main(){
strcpy(kopija, text);
}
Dupli navodni znaci
Ukoliko u C++ programskom jeziku koristimo jednostruke navodne
znake ' podrazumijeva se da se radi o jednom char podatku i kompajler će vratiti
grešku ukoliko se u tom nizu bude nalazilo više od jednog bajta (Byte-a) podataka.
#include <iostream>
int main(){
// Ispis
#include <iostream>
int main(){