Siruri de caractere C++ – notiuni introductive
Video YouTube!
In josul acestei pagini gasesti si videoul de YouTube cu notiunile din articol
O constanta de tip sir de caractere de declara intre doua caractere “. In memoria interna, o constanta de acest tip este retinuta sub forma unui vector de caractere. Fiecare componenta a sirului (incepand cu cea de indice 0) retine codul ASCII al caracterului pe care il memoreaza. Conventia este ca ultimul octet sa retina 0 (codul caracterului nul). Caracterul nul este memorat automat. Trebuie rezervate lungimea_sirului+1 caractere char (+1
pentru caracterul nul). Limbajul C/C++ permite initializarea unui tablou de caractere printr-o constanta sir, care include automat caracterul null.
Exemplu :
- char vect[11]=”calculator”;
- char vect[]=”calculator”; (compilatorul face calculul numarului de octeti necesari)
- char vect[100]=”calculator”; (s-au rezervat mai multi octeti decat era necesar)
Sirurile de caractere sunt de fapt tablouri de caractere, care au ca ultim element un terminator de sir, caracterul null.
Exemplu:
#include <iostream> | |
using namespace std; | |
char tc[5] = {’a’, ’b’, ’c’, ’d’, ’e’}; // tablou de caractere | |
char sc[5] = {’a’, ’b’, ’c’, ’d’, ’\0’}; // sir de caractere cu elementele abcd | |
//Ultima initializare este echivalenta cu: | |
char sc[5] = ”abcd”; //sau char sc[] = ”abcd”; | |
char sc1[5] = ”abcd”; | |
char s[10]; | |
cout<<sc<<endln; //afiseaza abcd | |
cout<<tc<<endl; //eroare: tabloul de caractere nu contine terminatorul de sir, deci nu poate fi afisat ca sir | |
cout<<s<<endl; // eroare: tablou neinitializat | |
cout<<sc1[0]; // afiseaza primul caracter din sirul sc1 | |
cout<<sc1[2]; // afiseaza al treilea element din sirul sc1 | |
sc1[1]=’K’; // elementului din sir de indice 1 i se atribuie valoarea „K‟; |
De asemenea, sirurile de caractere pot fi declarate folosind pointeri.ATENTIE!! Unui sir astfel initializat nu i se poate modifica valoarea. El este retinut in memorie ca un sir constant. Pe langa aceasta, un sir declarat cu char *p nu poate fi citit normal, cu cin sau cin.get. Nu se recomanda folosirea lor decat la apelul functiilor strtok, strchr,strstr sau in momentul declararii unor siruri constante.
Exemplu: char *p = “sir constant”.
Pointerii retin informatia de la o anumita adresa. Astfel, stiind ca functiile strtok, strchr si strstr returneaza adresa unor elemente, pentru accesa informatia de la acea adresa este recomandat sa folosim un char * (pointer catre un element de tip char).
Video de pe canalul nostru de YouTube in care discutam despre siruri de caractere:
Fraților, vă mulțumesc pentru că ați creat acest sait. Este extrem de util!
De ce nu scrieți voi și o carte, tot în acest fel, adică pe înțelesul tuturor? Probabil că ați face mai mulți bani decât faceți cu saitul.
Baftă în continuare!
Se scrie Site