Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Operatii cu siruri tip C++

c


Operatii cu siruri tip C++

Limbajul C++ defineste clasa string pentru operatii cu siruri. Definitia acestei clase se afla in biblioteca header <string> (nu <string.h>!!!).

Clasa are urmatorii constructori:



  • constructorul implicit care creaza un sir vid

string();

  • constructor copiere care are ca argument un sir de tip C    sau un sir de tip string

string(const string&);

string(const char *);

Clasa string defineste urmatoarele functii membre

  • int length();    - da lungimea sirului
  • int size();     - da lungimea sirului
  • bool empty();    - are valoarea true daca sirul este vid
  • Functia find() cu prototipul

int find(char * substring);

da indicele primei aparitii a sirului substring in sirul respectiv. Daca sirul substring nu exista in sir functia are ca rezultat lungimea sirului.

  • Functia erase sterge un subsir din sir. Ea are prototipul

void erase(int index, int size)

Functia sterge "size" caractere incepand cu caracterul cu indicele index.

  • Functia replace inlocuieste un subsir cu altul. Ea are prototipurile

replace(int index, int size, char * sir);

replace(int index, int size, string sir);

si inlocuieste subsirul de lungime size ce incepe cu caracterul index cu subsirul sir.

  • Functia substr cu prototipul

substr(int index, int size);

creaza un sir tip string din subsirul de lungime size ce incepe cu caracterul index al sirului initial

Clasa defineste urmatorii operatori

  • operatorul = ce are ca argument drept un sir tip C sau sir tip string
  • operatorii + si +=(concatenarea sirurilor).
  • operatori de comparare, <, <=, >, >= , = = si !=    ce au ca rezultat valorile true sau false.

operatorul de selectie [] ce poate selecta un caracter din sir sau atribui o valoare unui caracter din sir. Trebuie tinut cont de faptul ca indicele primului character din sir este zero.

Mentionam ca citirea unui sir de caractere de la tastatura intr-un sir tip string se poate face cu operatorul de citire >>. Sirul citit se termina la primul spatiu intalnit sau la intalnirea caracterului 'n'. O functie utila a obiectului cin pentru citirea de caractere este getline cu prototipurile

getline(sir_c, size, car) ;

care citeste in sirul tip C sir_c cel mult size caractere sau pana la intalnirea caracterului car.

getline(cin, str, car);

care citeste in sirul tip string str pana la intalnirea caracterului car.

In rezolvarea problemelor urmatoare vom utiliza spatii de nume. Directiva using namespace asociaza un spatiu de nume cu un anumit nivel al programului, astfel incat obiectele si functiile din acel spatiu sunt accesibile direct ca si cand ar fi fost definite ca globale. Aceasta directiva are forma

using namespace identificator;

Toate clasele, obiectele si functiile din bibliotecile C++ standard sunt definite in spatiul std. La utilizarea cu spatii de nume se utilizeaza bibliotecile paralele ale limbajului C++, fara extensia h.

Probleme rezolvate

Problema 1. Sa se construiasca un program care citeste un sir de caractere de la tastatura intr-un sir tip C++ si afiseaza lungimea lui.

  • se va citi cu operatorul >> intr-un sir tip C++ un sir ce nu contine spatii
  • se va citi cu operatorul >> intr-un sir tip C++    un sir ce contine spatii
  • se va citi un sir ce contine spatii cu functia getline

Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 2. Se da sirul "aDeRUyt". Sa se converteasca literele mici in litere mari.

Indicatie.Se va utiliza functia standard int toupper(char) din bibliotecile <cctype> sau <cstdlib>. Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

#include<cctype>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 3. Se da sirul "xyz2j7M=*&^". Sa se inlocuiasca primele doua caractere din sir cu primele doua caractere din sirul "abc". Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

#include<cctype>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 4. Sa se compare sirurile

"abcxd" si "abdf89k".

"xyz" si adk"

"mnp" si "mnp"

Se va explica de fiecare data rezultatul. Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 5. Sa se concateneze sirurile "abc", "x**2" si "x-y$zk". Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 6. Fie un sir de caractere citit de la tastatura. Sa se verifice daca in sirul citit exista subsirul "abc". Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Problema 7. Sa se scrie o functie care citeste un sir de caractere de la tastatura, sterge primul caracter din sir si apoi afiseaza pe ecran sirul rezultat. Programul ce rezolva problema este urmatorul.

#include<string>

#include<iostream>

using namespace std;

void main()

Rezultatele rularii programului sunt cele de mai jos.

Probleme propuse

Problema Se da sirul "xyz2j7M=*&^". Sa se inlocuiasca primele doua caractere din sirul dat cu ultimele doua caractere din sirul "abc" .

Problema Sa se compare sirurile

"abcxd" si "abdf89k".

"xyz" si adk"

"mnp" si "mnp"

Se va explica de fiecare data rezultatul. Se vor utiliza operatorii de comparare <, > si = =.

Problema Sa se construiasca o functie care sa transforme literele mici dintr-un sir in litere mari. Prototipul functiei va fi

void strcnv(string& x);

Problema Sa se construiasca o functie care sa transforme componentele pare ale unui sir tip string in spatii. Prototipul functiei va fi

void strcnv(string& x);

Problema Sa se citeasca un sir de la tastatura. Sa se afiseze sirul citit si sirul in ordine inversa.



Document Info


Accesari: 5496
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )