Professional Documents
Culture Documents
i rur i
de
carac t ere
Sumar 1. Competene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Prezentare general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Declararea irurilor de caractere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Citirea i scrierea irurilor de caractere . . . . . . . . . . . . . . . . . . . . . . . 10 5. Prelucrarea irurilor de caractere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6. Aplicaii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7. Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1. Competene Competene generale identificarea datelor care intervin ntr-o problem i a relaiilor dintre acestea elaborarea algoritmilor de rezolvare a problemelor
Competene specifice evidenierea necesitii structurrii datelor prelucrarea datelor structurate alegerea structurii de date adecvat rezolvrii unei probleme prelucrarea datelor structurate
2. Prezentare general Un ir de catactere: - este un tablou unidimensional (vector) de caractere; - reprezint o succesiune de caractere cuprins ntre ghilimele i terminat cu caracterul NULL notat \0; - conine orice tip de caracter: liter mic, lier mare, cifr, caracter special, delimitator, fiecare caracter fiind reprezentat prin codul su ASCII.
Un ir de caractere este o structur de date care este format dintr-o mulime ordonat de caractere, n care fiecare caracter se identific prin poziia sa n cadrul mulimii. Exemplu: irul de caractere Limbajul C++ se poate reprezenta astfel:
L i m b a j u l C + + \0
Prezentare general Fiecare caracter din setul de caractere al limbajului C++ se caracterizeaz printr-un cod unic, numit codul ASCII al caracterului, un numr ntreg ntre 0 i 255. n cadrul setului ASCII, codurile caracterelor sunt dup cum urmeaz: - literele mari ncepnd cu 65 (A - 65, B - 66, C - 67, ..., Z - 90); - literele mici ncepnd cu 97 (a 97, b 98, c 99, ..., z - 122); - cifrele ncepnd cu 48 (0 48, 1 49, 2 50, ..., 9 - 57).
Observaie: Diferena ntre codul ASCII al oricrei litere mici i codul literei mari pereche este aceeai, 32. Exemplu: char c1,c2; int x; c1='A'; x=c1+32; //conversie implicit c2=x; //conversie implicit cout<<c1<<endl<<c2<<endl<<x;
5
3. Declararea irurilor de caractere Declararea irurilor de caractere: - vectorul de caractere trebuie declarat cu un caracter mai mult (caracterul NULL) dect cel mai mare ir pe care l poate conine; - un ir de caractere poate fi definit ca un vector de caractere, n dou moduri: char nume[dimensiune]; char *nume; unde nume este identificatorul variabilei de tip ir de caractere, iar dimensiune reprezint numrul maxim de caractere ce pot fi memorate n ir (inclusiv caracterul NULL);
char nume[dimensiune]; // se declar un vector cu elemente de tip caracter;
n
1
f
2
o
3
r
4
m
5
a
6
t
7
i
8
c
9
a
10
\0
11
\0
12
\0
13
\0
14
\0
15
\0
16
\0
17
\0
18
\0
19
unde: sir[0]=i sir[1]=n sir[2]=f sir[10]=a - caracterul NULL (\0) este adugat automat de ctre compilator; - lungimea irului de caractere este dat de numrul de caractere (n exemplu este de 11);
7
l
1
g
2
o
3
\0
4
a
1
l
2
c
3
u
4
l
5
a
6
t
7
o
8
r
9
\0
10
\0
11
\0
12
\0
13
\0
14
-dac se iniializeaz irul de caractere, nu mai este nevoie s se precizeze lungimea maxim a irului, aceasta fiind calculat de ctre compilator: char a[]=calculator;
10
11
Forma 2: cin.get();
- folosit dup o fucie cin.get() cu parametri pentru a descrca din fluxul de date ultimul caracter citit, care ar mpiedica efectuarea unei a doua operaii de citire de la tastatur.
12
Exemplul 3: char s3[10]; cin>>s3; //dac introducem textul info arena i tastm Enter se memoreaz n variabila s3 irul info;
13
Exemplul 6: char s6[10]; cin.get(s6,10); //dac introducem textul info arena i tastm Enter se memoreaz n variabila s6 irul info aren;
14
Exemplul 9: char s9[10]; cin.get(s9,9,\n); //dac introducem textul info arena$ i tastm Enter se memoreaz n variabila s9 irul info are;
15
16
17
18
19
Citirea i scrierea irurilor de caractere Exemplul 1: char s1[10]; cin>>s1; cout<<s1; //dac introducem textul informat i tastm Enter se afieaz irul informat; Exemplul 2: char s2[10]; cin>>s2; cout<<s2+2; //dac introducem textul informat i tastm Enter se afieaz irul format; Exemplul 3: char s3[10]; cin>>s3; cout<<s3; //dac introducem textul info arena i tastm Enter se afieaz irul info;
20
21
22
23
24
25
Dac se citete n variabila a irul info i n variabila b irul arena se afieaz irul infoare.
Care este efectul apelului: strncat(a,b+0,3); ?
26
Dac se citete n variabila a irul info i n variabila b irul intro se afieaz valoarea -1.
Care este efectul apelului: cout<<strcmp(intro,a);?
27
28
29
Dac se citete n variabila a irul info i n variabila x caracterul 1 se afieaz irul 1111.
Care este efectul apelului: strset(a,'#'); ?
30
32
33
Prelucrarea irurilor de caractere 13. Funcia TOLOWER Transform o liter mare n liter mic. tolower(ch) unde ch este o variabil de tip caracter. Exemplu: char c; cin>>c; c=tolower(c); cout<<c;
Dac se citete n variabila c caracterul N se afieaz irul n. Care este efectul apelului: c=tolower('A');cout<<c; ?
34
35
36
37
Dac se citete n variabila a irul informatica i n variabila b irul fo se afieaz irul formatica.
Care este efectul apelului: cout<<strstr("arena","a"); ?
38
39
6. Aplicaii
Fi de lucru: Aplicaii iruri de caractere
40
7. Bibliografie 1. Miloescu M., Informatic manual pentru clasa a X-a, Editura Didactic i Pedagogic, Bucureti, 2005 2. Munteanu F., Programarea calculatoarelor - manual pentru licee de informatic clasele X-XII, Editura Didactic i Pedagogic, Bucureti, 1994 3. Logoftu D., Bazele programrii n C++, Editura Polirom, Iai, 2006 4. Popescu C., Culegere de probleme de informatic, Editura DonarisInfo, Sibiu, 2002
41