
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
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.
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
By Carmen Nicoleta Avramescu
Show answer
Auto Play
Slide 1 / 20
SLIDE
Similar Resources on Wayground
14 questions
Scratch - Examen - PrimerMomento
Presentation
•
10th - 12th Grade
17 questions
USO DE C,S,Z
Presentation
•
10th Grade
15 questions
Correo Electronico
Presentation
•
KG
15 questions
LOGOTIPOS
Presentation
•
10th Grade
14 questions
La libertad 1. Qué es la Ilustración
Presentation
•
KG
15 questions
Redes Sociales 1er. semestre
Presentation
•
10th Grade
15 questions
Soy responsable del uso de internet
Presentation
•
1st Grade
14 questions
Has/ have (Simple Present Tense)
Presentation
•
10th Grade
Popular Resources on Wayground
10 questions
How much do you know about our Portrait of an Eagle?
Quiz
•
10th Grade
10 questions
Fast Food Slogans
Quiz
•
6th - 8th Grade
21 questions
Continents and Oceans
Quiz
•
6th Grade
20 questions
Parts of Speech
Quiz
•
5th Grade
16 questions
Subject & Predicate
Quiz
•
5th Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
12 questions
Map Skills
Quiz
•
3rd Grade
22 questions
Continents and Oceans
Quiz
•
5th Grade
Discover more resources for Computers
10 questions
Exploring Digital Citizenship Essentials
Interactive video
•
6th - 10th Grade
20 questions
[AP CSP] Python Coding: Functions, Parameters, Return
Presentation
•
9th - 12th Grade
40 questions
Introduction to Microsoft Word
Quiz
•
8th - 12th Grade
20 questions
APCS Unit 1A
Quiz
•
9th - 12th Grade
24 questions
Binary
Quiz
•
9th - 12th Grade