6.
Scrieți un program C/C++ care citeşter de la tastatură un cuvânt format din cel mult 20 de
caractere, doar litere ale alfabetului englez. Programul determina transformarea cuvântului
citit prin eliminarea fiecărei litere mici a cuvântului, restul literelor nemodificându-se, ca în
exemplu. Programul afişează pe ecran cuvântul obtinut. În cazul în care cuvântul citit
conține numai litere mici, programul va afişa mesajul CUVANT VID.
Exemple:
- dacă se citeşte cuvântul: baCALaureat se va afişa pe ecran: CALUT
- dacă se citeşte cuvântul: vara se va afişa pe ecran: CUVANT VID
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int litera_mica = 0, litera_mare = 0;
char sir[21];
cin.get(sir,20);
for(int i = 0; i < strlen(sir); i++)
{
if ( sir[i] >= 'a' && sir[i] <= 'z' )
{
litera_mica = 1;
strcpy(sir+i,sir+i+1);
i--;
}
if ( sir[i] >= 'A' && sir[i] <= 'Z' )
litera_mare = 1;
}
if ( litera_mica == 1 && litera_mare == 0 )
cout << "CUVANT VID";
else
if ( litera_mica == 1 && litera_mare == 1)
cout << sir;
}
Explicație:
Folosim doua variabile de contorizare litera_mica si litera_mare pentru a verifica daca exista atat o litera mica cat si o litera mare in sir.
Citim sirul.
Parcurgem sirul caracter cu caracter si verificam daca caracterul aflat pe pozitia i este litera mica sau litera mare. Daca este litera mica atunci variabila litera_mica va avea valoarea 1 ( o contorizare pentru afisare ), copiem peste pozitia i din sir restul sirului de la i+1 dupa care scadem i deoarece este posibil in sirul dat sa fie doua litere mici consecutive. Ca sa intelegi mai bine ce inseamna asta sterge i--; si o sa iti dai seama.
Verificam daca este litera mare. Daca este adevarat variabila litera_mare va avea valoarea 1.
Dupa parasirea instructiunii de parcurgere scriem afisarile.
Daca sirul contine o litera mica DAR nu contine o litera mare automat sirul este vid deoarece noi am eliminat toate literele mici.
Daca sirul initial a avut atat o litera mica cat si o litera mare atunci putem afisa noul sir prin eliminarea literelor mici.