C++ Modulul III

Șiruri de carctere

- INTRODUCERE -

Șiruri de caractere:

- STRINGURI -

Șirurile de caractere, numite și stringuri au proprietăți speciale și funcții specifice:

1. Finalul unui string va fi semnalat de caracterul NULL, (sau 0 sau '\0' ). Acesta va fi prezent la sfârșitul șirului de caractere.

2. Stringurile încep de pe poziția 0.

3. Este posibilă citirea / afișarea  unui șir de caractere întreg, cu cin / cout:

  • pentru citirea unui singur cuvânt:  cin >> s;
  • pentru citirea unui rând:   cin.getline( s, nr_max_elem);
  • pentru afișare: cout << s;

4. Există multe funcții specifice stringurilor, care pot fi găsite în biblioteca <cstring> (sau <string.h> )

<cstring>

  • int strlen (char s[ ]); // functia va returna numărul de elemente (caractere) din string. (poziția caracterului NULL)

 

  • char * strcpy (char a[ ], char b[ ]); //funcția copiază tot stringul b în stringul a. Echivalentul pentru stringuri al atribuirii ( a =  b).
  • int   strcmp  (char  a[ ], char  b[ ] ); //funcția compară stringurile a și b, și returnează 0 dacă sunt egale, un nr  < 0 dacă a < b. și un număr >0 dacă a > b.
  • char * strcat (char a[ ], char b[ ] ); // concatenează stringurile (adaugă la sfârșitul stringului a stringul b.)
  • Pentru funcțile de mai sus există și varianta care operează doar pe primele n elemente ale stringurilor, și anume strncpy, strncmp, strncat.

<cstring>

Pentru căutarea unui caracter sau a unui substring (succesiune de caractere) într-un string, se vor folosi următoarele funcții:

  • char * strchr ( char s[ ], char c ); // funcția caută caracterul c în stringul s. Se va returna o valoare adevărată dacă l-a găsit, si o valoare falsă dacă nu. ( * pentru poziție -> algo)
  • char * strstr (char s1[ ], char s2[ ]); // funcția caută stringul s2 în stringul s1. Se va returna o valoare adevărată dacă a găsit cel puțin o apariție, și o valoare falsă dacă nu.

Aplicații

  1. Compararea a 2 stringuri:

    1. lungime (vezi strlen)

    2. lexicografic (vezi strcmp).

  2. Interschimbarea a două stringuri. (vezi strcpy)

  3. Ordonarea a 3 stringuri. (strcmp + pb2)

  4. Dacă stringul conține litera ‘m’ ? (vezi strchr)

  5. Dacă un caracter este vocală.  (strchr + șmen)

  6. Câte vocale sunt într-un string? (pb. 5)

  7. Verificare dacă un caracter e literă. Transformarea în majusculă / minusculă. (caractere)

  8. Sunt mai multe vocale, sau consoane? (vezi pb. 5)

  9. Să se transforme toate vocalele în majuscule. (vezi pb5 + pb7)

Stringuri1

By Academia de Informatică