
Siruri de caractere - notiuni generale
Presentation
•
Computers
•
10th - 11th Grade
•
Practice Problem
•
Medium
Carmen Nicoleta Avramescu
Used 20+ times
FREE Resource
11 Slides • 9 Questions
1
Siruri de caractere - notiuni generale
By Carmen Nicoleta Avramescu
2
Implementarea șirurilor de caractere în limbajul de programare C++ se face sub forma unui tablou unidimensional (vector) ale cărui elemente sunt de tip caracter, fiecare caracter fiind reprezentat prin codul său ASCII.
Un sir de caractere este o succesiune de caractere terminata cu caracterul NULL si cuprinse intre ghilimele.
3
Observatii
ASCII este o formă de reprezentare în calculator a caracterelor folosită în toate limbajele de programare studiate în liceu
Câteva exemple de coduri ASCII ->
Caracter | Cod ASCII |
NULL | 0 |
0 | 48 |
1 | 49 |
9 | 57 |
A | 65 |
Z | 90 |
a | 97 |
z | 122 |
4
Şirul de caractere poate să conţină orice caracter: literă mare, literă mică, cifra, caracter special (‘#’, ’&’, etc) sau delimitator (virgula, punctul, etc.)
Deosebirea dintre un sir de caractere si alte tipuri de vectori este că folosește un marcaj pentru sfârșitul logic al vectorului şi anume caracterul NULL (specificat prin constanta caracter ‘\0’).
Pentru recunoaşterea funcţiilor predefinite pentru şirurile de caractere trebuie să se deschidă biblioteca string.h sau cstring
5
Declararea unui şir de caractere
char nume[dimensiune maxima+1];
Caracterele şirului vor ocupa poziţii consecutive în vector, începând cu poziţia 0.
Exemplu:
char sir[61];
Iniţializarea unui şir de caractere
Putem iniţializa o variabilă şir de caractere chiar de la declarare, cu o constantă şir. În acest caz lungimea şirului poate lipsi, fiind determinată automat.
Exemplu
char v1[]=”Matematica informatica”;
char v2[50]=”Informatica”;
6
· v1 are lungimea determinată automat : 23 octeţi (un octet pentru fiecare caracter din şir +1 octet pentru marcajul de sfârşit de şir).
· v2 are lungimea specificată (50 de octeţi). Dacă dimensiunea maximă a variabilei este mai mare decât lungimea efectivă a şirului plus unu, poziţiile rămase libere la sfârşitul vectorului de caractere aferent variabilei vor fi completate automat cu caracterul NULL.
ATENTIE o constantă caracter (exemplu ‘a’) NU este echivalentă cu o constantă şir de caractere (exemplu ”a”). Deoarece constanta ’a’ este stocată pe un singur octet care conţine codul ASCII al caracterului 'a', iar constanta ”a” este stocată pe doi octeţi (primul conţine codul ASCII al caracterului, iar al doilea, marcajul de sfârşit de şir - NULL).
7
Multiple Choice
a
b
c
d
8
Multiple Choice
a
b
c
d
9
Multiple Choice
a
b
c
d
10
Multiple Choice
a
b
c
d
11
Multiple Choice
a
b
c
d
12
Multiple Choice
a
b
c
d
13
ATENTIE NU este corect
char v[60];
v=”Algoritm”;
Citirea şi afişarea şirurilor de caractere
cin>>s;
Atenţie!! În acest caz se vor citi în șirul s toate caracterele până la primul caracter alb (spațiu, tab, enter). De exemplu, dacă fluxul de intrare conține caracterele “Buna ziua”, după citire, sirul s va fi Buna.
14
O alta modalitate de citire care elimina inconvenientul de mai sus il reprezinta folosirea functiilor urmatoare:
cin.get(nume_sir_de_caractere, nr+1 ,‘caracter’)
cin.get(nume_sir_de_caractere, nr+1)
respectiv
cin.getline(nume_sir_de_caractere, nr+1, ’caracter’ )
cin.getline(nume_sir_de_caractere, nr+1)
Funcţia citeşte un şir de caractere până când este îndeplinită una dintre condiţiile de mai jos:
- au fost citite nr caractere;
- a fost întâlnit caracterul transmis ca ultim parametru (implicit ’\n’).
15
Observaţii:
1. sunt citite şi caractere albe;
2. este inserat caracterul nul;
3. caracterul transmis ca ultim parametru nu este inserat în şir.
Al treilea parametru este trecut în mod facultativ. Dacă nu este trecut, se presupune că este ’\n’.
Diferența între ele este că getline() extrage din fluxul de intrare caracterul delimitator, în timp ce get() nu îl extrage. Dacă totuși doriți să folosiți numai funcția get, atunci după citirea fiecărui șir trebuie să scrieți funcția cin.get() fără parametri.
16
Observaţie
Dacă după prima citire nu am fi folosit funcţia cin.get() fără parametri a doua citire nu ar mai fi efectuată. Sfârşitul primului şir introdus a fost marcat prin tastarea Enter. Aceasta a făcut ca în memoria (buffer) să fie păstrat caracterul ’\n’. La a doua citire, noul şir va începe cu acesta. Prin logica funcţiei cu trei parametri, citirea se face până la întâlnirea lui. În concluzie, se citeşte şirul vid. Utilizatorul nu mai apucă să îşi tasteze textul. Prin utilizarea funcţiei fără parametri, acest caracter se citeşte şi noua citire se poate efectua fără probleme.
Exemplu:
cin.get(s1,10); cin.get(s2,10); nu va permite citirea celui de al doilea sir!
Corectat: cin.get(s1,10); cin.get();cin.get(s2,10);
sau cin.getline(s1,10); cin.getline(s2,10);
17
Afişarea unui şir de caractere
Afișarea unui șir de caractere se face cu ajutorul operatorului de scriere<<.
cout<<s;
se vor scrie caracterele până la întâlnirea primului marcaj de sfârşit de şir NULL.
Pentru a afla lungimea efectivă a unui şir de caractere folosim funcţia predefinită strlen(sir).
Exemplu:
char [10]=”Algoritm”;
cout<<strlen(a);
se afisează 8.
18
Multiple Choice
a
b
c
d
19
Multiple Choice
a
b
c
d
20
Multiple Choice
a
b
c
d
Siruri de caractere - notiuni generale
By Carmen Nicoleta Avramescu
Show answer
Auto Play
Slide 1 / 20
SLIDE
Similar Resources on Wayground
15 questions
diagnostico
Presentation
•
10th Grade
15 questions
COSTA RICA
Presentation
•
11th Grade
14 questions
OPERACIONES COMBINADAS
Presentation
•
11th Grade
17 questions
ENCABEZADO Y PIE DE PAGINA EGB MEDIA
Presentation
•
10th Grade
17 questions
Preterite tense of -er & -ir verbs
Presentation
•
10th - 12th Grade
17 questions
Virus/Antivirus
Presentation
•
11th Grade
13 questions
Período composto
Presentation
•
10th - 12th Grade
17 questions
Redes de ordenadores
Presentation
•
9th - 11th Grade
Popular Resources on Wayground
16 questions
Grade 3 Simulation Assessment 2
Quiz
•
3rd Grade
19 questions
HCS Grade 5 Simulation Assessment_1 2526sy
Quiz
•
5th Grade
10 questions
Cinco de Mayo Trivia Questions
Interactive video
•
3rd - 5th Grade
17 questions
HCS Grade 4 Simulation Assessment_2 2526sy
Quiz
•
4th Grade
24 questions
HCS Grade 5 Simulation Assessment_2 2526sy
Quiz
•
5th Grade
13 questions
Cinco de mayo
Interactive video
•
6th - 8th Grade
20 questions
Math Review
Quiz
•
3rd Grade
30 questions
GVMS House Trivia 2026
Quiz
•
6th - 8th Grade