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

Într-un text cu cel mult 102 caractere, cuvintele sunt formate din litere mici ale alfabetului englez și sunt

separate prin câte un spațiu. Scrieți un program C/C++ care citește de la tastatură un text de tipul

precizat, pe care îl transformă în memorie, eliminând numai ultima vocală care apare în text, ca în

exemplu. Programul afișează pe ecran textul obținut sau mesajul nu exista, dacă în text nu există

nicio vocală. Se consideră vocale literele a, e, i, o, u.

Exemplu: dacă se citește textul: cuvantul ritm poate fi tradus rhythm

se obține textul cuvantul ritm poate fi trads rhythm​

Răspunsuri la întrebare

Răspuns de andriesboss92
4

Răspuns:

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

   char vocale[]="aeiou", sir[103];

   int gasit = 0;

   cin.get(sir,102);

   strrev(sir);

   for(int i = 0; i < strlen(sir)-1; i++ )

   {

       if ( strchr(vocale,sir[i]) )

       {

           strcpy(sir+i,sir+i+1);

           gasit = 1;

           break;

       }

   }

   strrev(sir);

   if ( gasit == 0 )

       cout << "Sirul nu contine vocale.";

   else

       cout << sir;

}

Explicație:

Pentru a face un numar de pasi mai putini prin parcurgeri am ales sa inversez sirul prin functia strrev( sir ) care practic transforma sirul in oglinditul sau.

Exemplu:

Sirul este: ana are mere

Dupa apelul functiei strrev(sir) sirul de caractere va fi erem era ana.

Astfel ca putem verifica prima vocala care apare in sir, ceea ce am si facut in cod, dupa care, odata ce s-a gasit o vocala, atribuim peste acea pozitie restul sirului ramas cu exceptia acelei vocale.

Pe baza exemplului anterior inseamna ca primul e din erem era ana va fi sters ramanand rem era ana. Urmatorul pas este sa inversam din nou sirul deoarece noi am facut un mic artificiu inversandu-l prima data iar cerinta ne cere sa afisam sirul initial fara acea vocala.

Apelam strrev(sir), sirul va fi: ana are mer

Afisam sirul.

Succes :D


elenaa411: multumeeesc ❤️❤️❤️
Alte întrebări interesante