Informatică, întrebare adresată de mrancla, 8 ani în urmă

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 de andriesboss92
1

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.

Alte întrebări interesante