Do sada smo naučili kako C++ radi sa brojevima koristeći tipove:
intfloatdouble
Ali programi ne rade samo sa brojevima.
Vrlo često moramo da radimo i sa:
- slovima,
- simbolima,
- znakovima interpunkcije,
- ciframa kao tekstualnim karakterima,
- i specijalnim znakovima.
Za to u C++ jeziku koristimo tip:
char
U ovoj lekciji naučićemo:
- šta je
char, - kako se koristi,
- razliku između karaktera i stringa,
- kako računar čuva karaktere,
- šta je ASCII tabela,
- kako se karakteri pretvaraju u brojeve,
- i koje greške početnici najčešće prave.
Šta je char?
char je skraćenica od:
character
što znači:
karakter / znak
Koristi se za čuvanje jednog pojedinačnog znaka.
To može biti:
- slovo
- cifra
- simbol
- specijalni znak
Primer:
char slovo = 'A';
Ovo znači:
napravi promenljivu tipa char i sačuvaj znak:
A
Još primera:
char ocena = '5';
char simbol = '#';
char znak = '?';
char pol = 'M';
Svaka promenljiva tipa char čuva samo jedan znak.

char nije string
Ovo je veoma važna razlika.
char čuva:
jedan znak
Primer:
char slovo = 'A';
Ali:
string ime = "Marko";
čuva više karaktera.
Dakle:
'A'
nije isto što i:
"A"
Razlika:
'A'
= jedan karakter (char)
"A"
= tekst / niz karaktera (string)
Navodnici kod char
Kod char koristimo:
jednostruke navodnike
Primer:
char znak = 'X';
Kod stringa koristimo:
dvostruke navodnike
Primer:
string tekst = "X";
Ako napišemo pogrešno:
char slovo = "A";
to je greška.
Ispravno:
char slovo = 'A';
Unos char vrednosti
Možemo koristiti cin.
Primer:
#include <iostream>
using namespace std;
int main() {
char slovo;
cout << "Unesi jedno slovo: ";
cin >> slovo;
cout << "Uneli ste: " << slovo;
return 0;
}
Ako korisnik unese:
K
program ispisuje:
Uneli ste: K
Rad sa karakterima
Pošto je char podatak, možemo ga koristiti kao i druge promenljive.
Primer:
char ocena = 'A';
cout << ocena;
Rezultat:
A
Šta računar zapravo čuva?
Ovo je veoma zanimljiv deo.
Računar ne čuva karaktere direktno kao slova.
On čuva brojeve.
Na primer:
A
interno postaje:
65
Zašto?
Zbog sistema koji se zove:
ASCII tabela

Šta je ASCII tabela?
ASCII znači:
American Standard Code for Information Interchange
To je standard koji svakom karakteru dodeljuje broj.
Na primer:
A = 65
B = 66
C = 67
Mala slova:
a = 97
b = 98
c = 99
Cifre:
'0' = 48
'1' = 49
'2' = 50
Specijalni znakovi:
! = 33
# = 35
@ = 64
Računar zapravo radi sa tim brojevima.
Primer ASCII konverzije
Pogledajmo program:
#include <iostream>
using namespace std;
int main() {
char slovo = 'A';
cout << slovo << endl;
cout << (int)slovo;
return 0;
}
Rezultat:
A
65
Ovde:
(int)slovo
pretvara karakter u broj.
Karakter kao broj
Pošto je char zapravo broj u memoriji, možemo raditi i ovako:
char slovo = 65;
cout << slovo;
Rezultat:
A
Jer ASCII kod 65 predstavlja:
A
Primer:
char znak = 97;
cout << znak;
Rezultat:
a
Sledeći karakter
Pošto su karakteri numerički kodovi, možemo ih povećavati.
Primer:
char slovo = 'A';
slovo++;
cout << slovo;
Rezultat:
B
Zašto?
Jer:
A = 65
B = 66
Program povećava broj za 1.
Razlika između ‘5’ i 5
Ovo je klasična početnička zamka.
'5'
nije isto što i:
5
Razlika:
5
= broj
'5'
= karakter
ASCII vrednost:
'5' = 53
Primer:
char c = '5';
cout << (int)c;
Rezultat:
53

Poređenje karaktera
Možemo porediti karaktere.
Primer:
char slovo = 'A';
if (slovo == 'A') {
cout << "Tacno";
}
Pošto se ASCII kodovi porede numerički, ovo radi normalno.
Velika i mala slova
ASCII razlikuje velika i mala slova.
Primer:
A = 65
a = 97
Znači:
'A' != 'a'
To su različiti karakteri.
Primer:
char x = 'A';
char y = 'a';
if (x == y) {
cout << "Isto";
}
else {
cout << "Razlicito";
}
Rezultat:
Razlicito
Korisni primeri sa char
Unos slova i provera
#include <iostream>
using namespace std;
int main() {
char odgovor;
cout << "Da li zelis nastavak? (D/N): ";
cin >> odgovor;
if (odgovor == 'D') {
cout << "Nastavljamo";
}
return 0;
}
Provera cifre
char c = '7';
if (c >= '0' && c <= '9') {
cout << "Ovo je cifra";
}
Ovo radi jer ASCII vrednosti cifara idu redom.
Mala u velika slova
Pošto je razlika u ASCII tabeli poznata, možemo menjati karaktere.
Primer:
char slovo = 'a';
slovo = slovo - 32;
cout << slovo;
Rezultat:
A
Kasnije ćemo učiti elegantnije metode.
Najčešće greške početnika
1. Korišćenje dvostrukih navodnika
Pogrešno:
char slovo = "A";
Ispravno:
char slovo = 'A';
2. Očekivanje da char čuva više karaktera
Pogrešno:
char ime = 'Marko';
char čuva samo jedan znak.
3. Mešanje broja i karaktera
Pogrešno razumevanje:
'5' == 5
Netačno.
4. Zaboravljanje razlike velikih i malih slova
'A'
nije isto što i:
'a'
5. Nerazumevanje ASCII konverzije
Početnici se često iznenade kada:
(int)'A'
daje:
65
Gde se char koristi?
Tip char koristi se za:
- unos jednog znaka
- menije
- komande
- rad sa tekstom
- proveru karaktera
- parser logiku
- obradu tastature
Primer:
char izbor;
kod menija:
1
2
3
Q
Rezime
U ovoj lekciji naučili smo:
char
čuva jedan karakter
ASCII tabela
pretvara karaktere u numeričke kodove
Važne stvari:
char= jedan znak- koriste se jednostruki navodnici
- karakteri imaju numeričke ASCII vrednosti
- mogu se porediti i menjati
Razumevanje char tipa je veoma važno jer predstavlja osnovu rada sa tekstom.
U narednoj lekciji prelazimo na:
„bool tip i logičke vrednosti”
Mini test
- Šta čuva
char?
a) Ceo tekst
b) Jedan karakter
c) Decimalni broj - Koji zapis je ispravan?
a)"A"
b)'A' - ASCII kod za
Aje?
a) 97
b) 65
c) 48 - Da li su
'A'i'a'isti?
a) Da
b) Ne - Šta daje:
char c = 'A';
cout << (int)c;
a) A
b) 65
Zadaci za vežbu
- Napravi
charpromenljivu za jedno slovo. - Unesi karakter preko tastature.
- Ispiši ASCII vrednost karaktera.
- Napravi program koji proverava da li je karakter cifra.
- Povećaj karakter za 1 i vidi rezultat.
Domaći zadatak
Napravi program koji:
- traži unos jednog slova
- prikazuje ASCII vrednost
- prikazuje sledeći karakter
- proverava da li je veliko ili malo slovo
