
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
17 questions
Redes de ordenadores
Presentation
•
9th - 11th Grade
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
Popular Resources on Wayground
10 questions
GPA Lesson
Presentation
•
9th - 12th Grade
7 questions
Albert Einstein
Quiz
•
3rd Grade
31 questions
Bridge A Review
Quiz
•
3rd Grade
6 questions
Blue Sue and Red Ruth
Quiz
•
3rd Grade
8 questions
(Day12 HW) Inverse Trig Ratios
Quiz
•
9th Grade
20 questions
Summer Geometry QUIZ (Week3)
Quiz
•
9th Grade
16 questions
Theme Practice
Quiz
•
7th Grade
20 questions
Taxes
Quiz
•
9th - 12th Grade
Discover more resources for Computers
10 questions
GPA Lesson
Presentation
•
9th - 12th Grade
20 questions
Taxes
Quiz
•
9th - 12th Grade
16 questions
Translations and Reflections
Quiz
•
9th - 10th Grade
17 questions
High School Survival Guide
Presentation
•
9th - 12th Grade
20 questions
Banking
Quiz
•
9th - 12th Grade
20 questions
Budgeting
Quiz
•
9th - 12th Grade