Informatică, întrebare adresată de MădălinaSpiridon, 8 ani în urmă

Să se scrie un program care citește un șir de caractere în care cuvintele sunt formate numai din litere mici ale alfabetului englez și sunt separate prin câte un spațiu și elimină litera din mijloc a fiecărui cuvânt cu număr impar de litere (cel puțin trei).Programul citește de la tastatură un șir de cel mult 100 caractere.Programul afișează pe ecran textul obţinut, iar dacă nu există niciun cuvânt modificat, afișează pe ecran mesajul nu exista.
Exemplu
Intrare

pictura prin aceea arata o pace profunda
Ieșire

picura prin acea arta o pace profunda
AM INCERCAT SA O REZOLV PRIN MAI MULTE VARIANTE DAR NU AM OBTINUT DECAT 40 DE PUNCTE(#799) PBINFO

Răspunsuri la întrebare

Răspuns de me2018
11

#include <iostream>

#include <cstring>

using namespace std;

int main()

{char s[101],*p, a[51][101],aux[101];

 int i,k=0,lungime,ok;

   cin.getline(s,101);

  ok=0;

   p=strtok(s," "); //extrag primul cuvant

   while(p)

   {  

     

     lungime=strlen(p);

      strcpy(a[k],p);

      if(lungime%2==1)

           {

           if(lungime>1){ok=1;

                    strcpy(aux,p+lungime/2+1);

                    strcpy(a[k]+lungime/2,aux);

                   }

           }

       k++;

       p=strtok(NULL," "); //extrag urmatorul cuvant

   }

   if(ok)

   {

       for(i=0;i<k;i++)

           cout<<a[i]<<" ";

   }

  else

       cout<<"nu exista";

   return 0;

}

Alte întrebări interesante