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

Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez şi spaţii), care
conţine cel puţin o vocală. Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul
menţionat mai sus şi determină transformarea acestuia în memorie prin duplicarea tuturor
vocalelor din text, ca în exemplu. Programul afişează pe ecran textul obţinut. Se consideră vocale
literele a, e, i, o, u. Exemplu: pentru textul problema aceea frumoasa se afişează proobleemaa
aaceeeeaa fruumooaasaa

Va rog sa rezolvati in c++

Răspunsuri la întrebare

Răspuns de uleiaalex
3

Buna. Am rezolvat problema in C++, sa iti fie de folos. Ti-am facut cu doua metode.


#include <iostream>

#include <string>


using namespace std;


int main()

{

  string s ="problema aceea frumoasa";

 

  int al = 0;


  cout<<"Alege o optiune de lucru: "<<endl;

  cout<<"1. Rezolva problema cu functii string predef."<<endl;  

  cout<<"2. Rezolva problema cu ajutorul unui alt string auxiliar."<<endl;  

 

  cin>>al;

 

 

  if(al == 1)

  {

      int i = 0;

      string a= "";

      while(i<s.length())

      {

          a="";

           if(s[i]=='a' || s[i]=='e' ||

              s[i]=='i' || s[i]=='o' ||

              s[i]=='u')

           {

               a += s[i];

               s.insert(i+1,a);

               i++;

           }

           i++;

      }

      cout<<s;

  }

  else if(al==2)

  {

      int i = 0;

     

      string b="";


      while(i<s.length())

      {

           if(s[i]=='a' || s[i]=='e' ||

              s[i]=='i' || s[i]=='o' ||

              s[i]=='u')

           {

               b+=s[i];

               b+=s[i];

               i++;

           }

           b+=s[i];

           i++;

      }

      s=b;

      cout<<s;

  }

  else

  {

      cout<<"Nu exista aceasta optiune, reincearca..."<<endl;

      main();

  }


  return 0;

}

Alte întrebări interesante