Citirea / Afișarea șirurilor de caractere

Citirea șirurilor de caractere

1. Șir fără caractere albe (space, tab, enter)

  Citirea unui șir fără spații albe (îl putem numi cuvânt), se face la fel ca citirea unei variabile.

char s[10];
cin>>s;

2. Șir cu spații

  Dacă citim un șir cu spații (să-l numim text), va trebui să folosim următoarea structură:

cin.get(<șir>, <nr_caractere>);

  În urma citirii cu cin.get(), programul va pune automat o marcă de sfârșit de șir după ultimul caracter citit. Atunci când introducem dimensiunea <nr_caractere>, trebuie să avem grijă să adăugăm un loc și pentru această marcă. Nu este obligatoriu să citim exact atâtea caractere câte scriem în dimensiune, important e să nu citim mai multe decât am specificat.

char text[51];
cin.get(text, 10);

  Această citire introduce doar 10 caractere în șir. Oricâte caractere am fi introdus după primele 9, nu se memorează. De ce 9 ? Deoarece al 10-lea caracter va fi marca de sfârșit de șir, pusă automat de program.
În urma unei astfel de citiri, ultimul caracter introdus de noi se va afla în poziția text[8].

Citirea mai multor șiruri unul după altul

 Dacă citim mai multe șiruri unul după celălalt și le vom separa prin enter, acest enter va rămâne pe buffer. Următoarea citire va lua în considerare acest enter lăsat în urmă și ne va strica următoarele citiri.
  Pentru a preveni acest lucru, vom introduce un cin.get() „gol” între citiri, pentru a elibera buffer-ul.

char s1[21], s2[31];
cin.get(s1,21);
cin.get();
cin.get(s2,31);

Afișarea șirurilor de caractere

  Afișarea întregului șir de caractere este mult mai simplă decât la vectori, este vorba despre un simplu:

cout<< <șir>;

  Putem însă să afișăm întregul șir, un singur caracter, sau întregul șir începând dintr-o poziție.

char s[]="Fericirea vine din lucruri mici.";
cout<<s<<'\n';
cout<<s[13]<<'\n';
cout<<s+15;
Fericirea vine din lucruri mici.
e
din lucruri mici.

  Sintaxa s + <numar> va afișa șirul începând cu poziția s[numar] (se sare peste primele <numar> caractere) și până la întâlnirea primei mărci de sfârșit de șir.