1.6.3. Constanta caracter

2018/12/18 in Programare in C

Prelucrarea datelor cu ajutorul calculatoarelor presupune si posibilitatea lucrului pe caractere, care sunt codificate folosind coduri numerice. Cel mai utilizat cod este ASCII (American Standard Code For Information Exchange).

Caracterele codului ASCII se impart in:

caractere negrafice codul lor este in intervalul [0, 31], la care se adauga codul 127 (caracterul DEL)
spatiu are codul 32
caractere grafice codul lor este in intervalul [33, 126]

Caracterele grafice impreuna cu spatiul formeaza setul de caractere imprimabile.

O constanta caracter are valoarea codului ASCII al caracterului pe care il reprezinta. Ea are tipul int.

O constanta caracter corespunzatoare unui caracter imprimabil se reprezinta prin caracterul respectiv inclus intre caractere apostrof.

Exemple:

Constanta caracter Valoare
'a' 97
'A' 65
'0' 48
' ' 32
'*' 42

O exceptie de la regula de mai sus o reprezinta caracterele apostrof si bara oblica inversa (backslash). Caracterul backslash se reprezinta prin doua caractere backslash incluse intre caractere apostrof: '\\'

La reprezentarea caracterului apostrof se utilizeaza caracterul backslash urmat de un caracter apostrof \'.

Constanta caracter apostrof va fi reprezentata '\''

Caracterul backslash se foloseste pentru a defini constante caracter si pentru caractere negrafice. De exemplu, pentru tabulator se foloseste: \t. Deci '\t' defineste constanta caracter tabulator orizontal. Ea are valoarea 9.

In mod analog, constanta caracter rand nou (newline) se reprezinta prin: '\n' si are valoarea 10.

Se spune ca backslash introduce o secventa escape.

Exemple de secvente escape:

Constanta caracter Codul ASCII Denumirea caracterului Utilizare
'\a' 7 BEL activare sunet
'\b' 8 BS revenire cu un spatiu (Backspace)
'\t' 9 HT tabulator orizontal
'\n' 10 LF rand nou (Line Feed)
'\v' 11 VT tabulator vertical
'\f' 12 FF salt de pagina la imprimanta (Form Feed)
'\r' 14 CR retur de car - pozitioneaza cursorul in coloana 1 din randul curent (Carriage Return)

La aceste notatii adaugam si utlizarile secventei escape pentru reprezentarea caracterelor backslash, apostrof si ghilimele:

Constanta caracter Codul ASCII Denumirea caracterului
'\"' 34 ghilimele
'\'' 39 apostrof
'\\' 92 backslash

Secventa escape poate fi folosita pentru a defini constante caracter pentru orice caracter al codului ASCII. Aceasta se realizeaza folosind codul caracterului respectiv.

Astfel, constructia '\ddd', unde d este o cifra octala, reprezinta constanta caracter corespunzatoare codului ASCII egal cu valoarea intregului octal ddd.

Exemple:

'\a' si '\7' reprezinta aceeasi constanta caracter corespunzatoare caracterului BEL
'\b' si '\10' reprezinta constanta caracter corespunzatoare caracterului Backspace[obs]

[obs] - 8 din sistemul zecimal se reprezinta prin numarul 10 in baza opt.

In cadrul unei secvente escape numerele octale nu mai trebuie sa fie precedate de un 0 nesemnificativ. In acest caz, numarul se considera automat in sistemul cu baza 8.

La calculatoarele compatibile IBM PC se utilizeaza codul ASCII extins, ce contine 256 de coduri cu valori in intervalul [0, 255].

Codurile din intervalul [0, 127] corespund caracterelor codului ASCII obisnuit, in vreme ce codurile din intervalul [128, 255] corespund unor caractere cu destinatie speciala.

Deoarece o constanta de tip caracter este de tip int, ea se pastreaza pe 16 biti. Pentru constantele caracter mai mari decat 127, se pune problema extensiei semnului. Programatorul poate opta pentru constante caracter cu semn sau fara semn.

1.6. Constante - 1.6.4. Sir de caractere