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
Funcții utile pentru șiruri de caractere în C++
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;
}
