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 :

  1. char vect[11]=”calculator”;
  2. char vect[]=”calculator”; (compilatorul face calculul numarului de octeti necesari)
  3. 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:

2 Replies to “Siruri de caractere C++ – notiuni introductive”

  1. 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!

    Reply

    1. Se scrie Site😑

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *