Extras din proiect
Generalităţi
Vectorii de caractere pot fi iniţializaţi la declarare, caracterul nul fiind memorat automat.
char vect[11]=“calculator”
char vect[]=“calculator”
char vect[100]=“calculator”
Citirea şi scrierea şirurilor de caractere
#include<iostream.h>
main()
{ char a[20];
int i;
for(i=0;i<10;i++) cin>>a[i];
a[10]=0;
for(i=0; i<10; i++) cout<<a[i];
}
Citirea şi scrierea şirurilor de caractere
Caracterul nul este adăugat automat
Putem citi orice cuvânt cu un număr de până la 19 caractere – excluzând caracterul nul.
Putem să rezervăm, în limita memoriei pe care o are la dispoziţie programul, un număr mai mare de octeţi.
Un vector poate fi adresat pe componente
Se sar caracterele albe.
Se citeşte şirul care începe cu primul caracter care nu este alb şi se sfârşeşte la întâlnirea primului caracter alb.
Pentru citirea şirurilor de caractere vom utiliza o funcţie de un tip special, şi anume:
cin.get(vector_de_caractere, int nr, char=‘n’)
Funcţia
cin.get(vector_de_caractere, int nr, char=‘n’)
citeşte un şir de caractere până când este îndeplinită una dintre condiţiile de mai jos:
au fost citite nr-1 caractere;
a fost întâlnit caracterul transmis ca ultim parametru (implicit “n”).
Observaţii
Sunt citite şi caractere albe.
Este inserat caracterul nul.
Caracterul transmis ca ultim parametru nu este inserat în şir.
Al treilea parametru este trecut în mod facultativ.
Care este efectul în ce două exemple?
char a[10]
cin.get(a,3)
cout<<a;
În C++ pot exista mai multe funcţii cu acelaşi nume, dar care diferă prin parametrii primiţi.
Funcţia
cin.get()
fără parametri are rolul de a citi un caracter (fie că este alb, fie că nu)
Tipul char*
Limbajul C++ permite ca un vector de caractere să fie adresat începând de la un anumit octet al său.
Tipul char*
când scriem a, adresăm vectorul începând cu primul octet
când scriem a+1, adresăm vectorul începând cu al doilea octet
când scriem a+2, adresăm vectorul începând cu al treilea octet
Tipul char*
Vectorii astfel adresaţi pot fi accesaţi aşa cum suntem deja obişnuiţi.
(a+1)[0] reţine caracterul ‘a’
(a+1)[1] reţine caracterul ‘s’
Tipul char*
Tipul expresiilor a-1, a-2 este de tip char*, adică sunt adrese.
Numărul de ordine al unui octet în memoria internă se numeşte adresa octetului respectiv.
Adresa unui vector de caractere este adresa primului său octet.
Tipul char*
O variabilă de tip char* poate reţine adresa unui vector de caractere.
În C++, numele unui vector de caractere este o adresă constantă de vector şi poate fi atribuit unei variabile de tip char*.
Tipul char*
a este un vector de caractere
p este o variabilă de tip char*.
Conținut arhivă zip
- Siruri de Caractere in C++.ppt