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
-
Compararea a 2 stringuri:
-
lungime (vezi strlen)
-
lexicografic (vezi strcmp).
-
-
Interschimbarea a două stringuri. (vezi strcpy)
-
Ordonarea a 3 stringuri. (strcmp + pb2)
-
Dacă stringul conține litera ‘m’ ? (vezi strchr)
-
Dacă un caracter este vocală. (strchr + șmen)
-
Câte vocale sunt într-un string? (pb. 5)
-
Verificare dacă un caracter e literă. Transformarea în majusculă / minusculă. (caractere)
-
Sunt mai multe vocale, sau consoane? (vezi pb. 5)
-
Să se transforme toate vocalele în majuscule. (vezi pb5 + pb7)
Stringuri1
By Academia de Informatică
Stringuri1
- 1,149