Documente Academic
Documente Profesional
Documente Cultură
Sesiunea 5:
Temele:
1) Siruri de caractere;
2) Operatii cu siruri de caractere;
Tema: Siruri de caractere.
La lecțiile precedente ai învățat să folosești tablourile unidimensionale și bidimensionale, care conțin valori numerice. Ai
observat că valoarea fiecărui element al tabloului trebuie citită separat, ceea ce nu este întotdeauna comod. Problemele pot
deveni și mai mari, dacă elementele tabloului sunt caractere (char) – îți închipui cum ar fi să scrii un text, acționând după fiecare
literă scrisă tasta Enter?
Șir de caractere - tablou unidimensional de caractere, care se termină cu caracterul NULL: '\0'.
NUL - Caracter care semnifică ”nimic”. Caracterul nul nu se afișează, nu ocupă spațiu pe ecran sau la tipar,
nu produce nici o acțiune. Caracterul nul însă ocupă spațiu în memorie. Este identificat în tabelul ASCII de
codul 0. Notația folosită: '\0'.
Declararea sirurilor
C++ permite citirea șirurilor de caractere care nu conțin spații cu ajutorul obiectului cin:
Pentru șirurile de caractere cu structură complexă se recomandă utilizarea tipului de date string, citirea
datelor de acest tip se va folosi funcția getline:
6
Citirea unui șir de caractere în C++
Fie declarația:
string q;
char s[30];
Citirea valorii q cu ajutorul funcției getline va avea forma: getline( cin, q);
Citirea valorii s cu ajutorul funcției cin va avea forma: cin>> s;
7
Afișarea unui șir de caractere în C++
9
Parcurgerea șirurilor de caractere
char
char s[20]
s[20] =
= {"TEKWILL"};
{"TEKWILL"}; using
using namespace
namespace std;
std;
12
Practica
Tema: Siruri de caractere.
Există o mulțime de operații care pot fi realizate asupra șirurilor de caractere. Cele mai importante sunt:
Lungime a șirului de caractere este considerat numărul de caractere în șir de la caracterul cu indicele 0
până la caracterul nul ’\0’.
În multe situații prelucrarea șirurilor de caractere presupune copierea dintr-un șir a unei secvențe de
caractere și utilizarea ulterioară a acestei secvențe în calitate de alt șir. Aceasta este operația care ”se
ascunde în spatele” acțiunilor Copy + Paste, pe care le efectuezi frecvent la editarea textelor.
Radierea, sau eliminarea unei secvențe de caractere dintr-un șir este o altă operație frecvent utilizată la
prelucrarea datelor în editoarele de text. Ea modelează acțiunea de ”decupare” Delete sau, în combinație cu
operația de copiere - Ctrl + X.
Simplu de observat că radierea secvenței s[i], s[i+1], ..., s[i+k] presupune deplasarea elementelor din dreapta
secvenței, inclusiv a elementului nul ’\0’ cu k poziții spre stânga.
Atenție! Unele caractere radiate sau caracterele deplasate pot rămâne în memorie, dar ele
nu mai fac parte din șirul s.
Functii din biblioteca string.h
int main()
{
char s[256];
int i, k=0;
int len;
cout << "dati sirul:" ;
cin.get(s,255);
cout << "sirul introdus:" << s << endl;
len=strlen(s);
for (i=0; i<len; i++)
//if (s[i]=='A') k++;
//cout << "numarul de caractere:" <<k;
if (s[i]=='A') strcpy(s+i, s+i+1);
cout << "sirul modificat este:" << s;
return 0;
}
24
Practica
Mulțumesc.