Prelucrarea șirurilor de caractere în C++

:: Vă recomandăm ca în sursa programelor să nu utilizați diacritice.

Vă invităm să aplicăm cunoștințele dobândite.

Introdu completarea corectă, fără paranteze la funcții

1. Funcția care returnează poziția primei apariții a unui substring este:

2. Pentru a șterge caractere dintr-un șir se folosește funcția:

3. Funcția care verifică dacă un șir este gol se numește:

4. Pentru a extrage o parte dintr-un șir folosim funcția:


Funcții utile pentru șiruri de caractere în C++

1. Care dintre următoarele funcții verifică dacă un șir este gol?




2. Ce funcție șterge conținutul unui string?




3. Cum putem căuta ultima apariție a unui substring într-un șir?




4. Ce valoare întoarce empty() pentru un șir cu conținut?






Exercițiul 1 – Numărarea vocalelor

Scrie un program C++ care citește un șir de caractere de la tastatură și afișează numărul vocalelor (a, e, i, o, u).

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text;
    int count = 0;
    cout << "Introdu un sir: ";
    getline(cin, text);

    for (char c : text) {
        c = tolower(c);
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
            count++;
        }
    }

    cout << "Numarul de vocale este: " << count;
    return 0;
}

Exercițiul 2 – Verificare palindrom

Scrie un program care verifică dacă un cuvânt introdus este palindrom.

🔽 Vezi soluția
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    string cuvant;
    cout << "Introdu un cuvant: ";
    cin >> cuvant;

    string invers = cuvant;
    reverse(invers.begin(), invers.end());

    if (cuvant == invers) {
        cout << "Cuvantul este palindrom.";
    } else {
        cout << "Cuvantul NU este palindrom.";
    }

    return 0;
}

Exercițiul 3 – Ștergerea tuturor spațiilor

Scrie un program care elimină toate spațiile dintr-un șir citit de la tastatură.

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text, fara_spatii = "";
    cout << "Introdu textul: ";
    getline(cin, text);

    for (char c : text) {
        if (c != ' ') {
            fara_spatii += c;
        }
    }

    cout << "Textul fara spatii: " << fara_spatii;
    return 0;
}

Exercițiul 4 – Înlocuire cuvânt

Scrie un program care citește un text și înlocuiește toate aparițiile unui cuvânt specificat cu un alt cuvânt.

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text, cuvant_vechi, cuvant_nou;
    cout << "Text: ";
    getline(cin, text);
    cout << "Cuvant de inlocuit: ";
    cin >> cuvant_vechi;
    cout << "Cuvant nou: ";
    cin >> cuvant_nou;

    size_t poz = text.find(cuvant_vechi);
    while (poz != string::npos) {
        text.replace(poz, cuvant_vechi.length(), cuvant_nou);
        poz = text.find(cuvant_vechi, poz + cuvant_nou.length());
    }

    cout << "Text modificat: " << text;
    return 0;
}

Exercițiul 5 – Căutare ultimă apariție

Scrie un program care afișează poziția ultimei apariții a unui cuvânt într-un text.

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text, cuvant;
    cout << "Text: ";
    getline(cin, text);
    cout << "Cuvant: ";
    cin >> cuvant;

    size_t poz = text.rfind(cuvant);
    if (poz != string::npos) {
        cout << "Ultima aparitie este la pozitia: " << poz;
    } else {
        cout << "Cuvantul nu a fost gasit.";
    }

    return 0;
}

Exercițiul 6 – Verificare cuvânt gol

Scrie un program care verifică dacă un șir introdus este gol, folosind funcția empty().

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text;
    cout << "Introdu textul: ";
    getline(cin, text);

    if (text.empty()) {
        cout << "Textul este gol.";
    } else {
        cout << "Textul NU este gol.";
    }

    return 0;
}

Exercițiul 7 – Ștergerea completă a șirului

Scrie un program care citește un text și apoi îl golește folosind funcția clear().

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text;
    cout << "Introdu textul: ";
    getline(cin, text);

    text.clear();
    cout << "Textul a fost sters. Dimensiune: " << text.length();
    return 0;
}

Exercițiul 8 – Compararea a două șiruri

Scrie un program care compară două șiruri introduse de la tastatură și afișează dacă sunt egale sau nu.

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string a, b;
    cout << "Primul sir: ";
    getline(cin, a);
    cout << "Al doilea sir: ";
    getline(cin, b);

    if (a == b) {
        cout << "Sirurile sunt egale.";
    } else {
        cout << "Sirurile NU sunt egale.";
    }

    return 0;
}

Exercițiul 9 – Concatenarea a două șiruri

Scrie un program care citește două șiruri și le concatenează într-unul singur.

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string a, b;
    cout << "Primul sir: ";
    getline(cin, a);
    cout << "Al doilea sir: ";
    getline(cin, b);

    string rezultat = a + b;
    cout << "Sir concatenat: " << rezultat;
    return 0;
}

Exercițiul 10 – Determinarea lungimii unui șir

Scrie un program care citește un șir de caractere și afișează lungimea acestuia folosind length().

🔽 Vezi soluția
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text;
    cout << "Introdu textul: ";
    getline(cin, text);

    cout << "Lungimea textului este: " << text.length();
    return 0;
}