fbpx

Siruri de caractere

0

Ce este un caracter?

Tipurile caracter și șir de caractere pot stoca secvențe de caractere dintr-un set de caractere, cum ar fi ASCII sau UTF-8. Deoarece cele mai multe seturi de caractere includ cifre, este posibil să existe un șir numeric, cum ar fi „1234”. Cu toate acestea, mai multe limbaje ar trata acest șir ca aparținând unui tip diferit, cu valoarea numerică 1234.

Sursa: wikipedia.org

Declararea şi memorarea vectorilor de caractere (sau sirurilor de caractere)

Şirurile de caractere sunt de fapt succesiuni de caractere. Exact cum am invatat despre vectori (int v[10];), sirurile de caractere sunt un vector de caractere.

char cuvant[15];

Acesta este un tablou unidimensional (sau vector), care poate memora 15 elemente de tip char (caracter).
Poate fi reprezentat în memorie astfel:

Reprezentarea sirurilor de caractere in C++
Reprezentarea sirurilor de caractere in C++

Presupunând că dorim să citim, să memorăm şi să afişăm cuvântul “tutoriale”, vom scrie următorul program:

#include	<iostream>

using namespace std;

int main()
{
  char cuvant[15];
  cout<<"Introduceti cuvantul: ";
  cin >> cuvant;

  cout<<"Cuvantul citit este: ";
  cout << cuvant;
}

Funcţiile cin şi cout suportă şirurile de caractere terminate cu caracterul NULL, astfel pot fi citite respectiv afişate şirurile de caractere.

Putem reprezenta memorarea variabilei cuvânt astfel:

Stocarea unui sir de caractere in C++
Stocarea unui sir de caractere in C++

Iniţializarea şirurilor de caractere

Un şir de caractere poate fi iniţializat la declarare astfel:

char cuvant[ ]=”tutoriale”;

In urma iniţializării, la sfârşitul cuvântului va fi adăugat caracterul \0 (codul ASCII al caracterului NULL). Exemplul il puteti vedea in poza anterioara.
Compilatorul va calcula numărul de octeţi necesari pentru memorarea cuvântului tutoriale. În acest caz tabloul conţine 10 octeţi, 9 pentru memorarea cuvântului şi 1 pentru memorarea codului caracterului NULL.

Dar in exemplul de mai sus am memorat un vector de 15 octeti, mai mult decat sunt necesari. Ultimii 5 octeti ramanand neocupati.

Un vector care conţine un şir de caractere citit sau iniţializat în modul anterior prezentat, poate fi adresat pe componente, în mod normal. De exemplu cuvant[0]=’t’, cunvant[1]=’u’, ş.a.m.d.
Din nefericire cu ajutorul funcţiei cin nu putem citi şiruri de cractere care conţin spaţii sau caractere albe*.

Funcţia cin procedează astfel la citirea unui şir de caractere:

  • Se sar toate caracterele albe
  • Se citeste şirul care începe cu primul caracter care nu este alb
  • Citirea se încheie la întâlnirea primului caracter alb.

*caracter alb = Un caracter alb este un caracter ASCII care poate fi vizualizat pe ecran sub forma unui spatiu liber (de exemplu, caracterele spaţiu, sfârşit de linie, tab, pagină nouă). Termenul este folosit in special in programare, dar poate fi intalnit si in lucrul cu editoarele de texte.

Exemplu: Pentru şirul introdus de la tastatură: “ astazi invatam de pe tutoriale-pe.net”, programulde mai sus va afişa doar “astazi”.

Pentru citirea şirurilor de caractere care conţin cuvinte separate prin spaţii sau alte caractere albe vom folosi funcţia cin.get().

 

Comentarii
Se incarca comentariile...

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More