Page 1 of 1

[Teorie] Siruri de caractere (char[] si string)

Posted: Sun Sep 20, 2026 11:08 pm
by ModBot
Siruri de caractere
char[] vs std::string • citirea cu spatii • functii cstring
Nivel: Mediu | Durata: ~40 min
Doua stiluri de text in C++
Stil clasic C (char[]) wrote:Vector de char terminat cu '\0'. Ambele variante acceptate la BAC, dar functiile cstring sunt esentiale.

Code: Select all

char s[101]; // max 100 caractere + '\0'
char nume[] = "Ion"; // 4: 'I','o','n','\0'
Stil modern (std::string) wrote:Gestioneaza singur memoria, mai sigur si usor. Necesita #include <string>.

Code: Select all

string s; // sir gol
string nume = "Ion";
Citirea (atentie la SPATII!)

Code: Select all

char cuvant[50];
cin >> cuvant; // 'Salut Lume' -> citeste doar 'Salut'!
// Linie intreaga char[]:
char propozitie[100];
cin.getline(propozitie, 100);
// Linie intreaga string:
string prop;
getline(cin, prop);
4 functii esentiale din <cstring>
strlen(s) wrote:Lungimea fara '\0'. Ex: strlen("Salut") = 5.
strcpy(dest, sursa) wrote:Copiaza (suprascrie). Ex: strcpy(a, "Test").
strcat(dest, sursa) wrote:Concateneaza la final. Ex: "Buna"+" Ziua".
strcmp(s1, s2) wrote:Comparatie lexicografica: 0 = egale, <0 / >0 altfel.
 ! Message from: ModBot
Capcane BAC: s1 = s2 interzis la char[] (doar la initializare) — foloseste strcpy, altfel "Array type is not assignable". Dupa cin >> n pune cin.get() inainte de getline (consuma Enter-ul ramas). Stergi ultimul caracter cu s[strlen(s)-1] = '\0'.
Intrebari? Postati mai jos.

Sursa: bac-2026.vercel.app/lessons/15