Informatică, întrebare adresată de magdalenapop, 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 și
afișează pe ecran, pe linii separate, toate cuvintele sale care conțin o singură vocală distinctă, ca în exemplu.
Dacă nu există niciun astfel de cuvânt, se afișează pe ecran mesajul nu exista. Se
consideră vocale literele din mulțimea a, e, i, o, u.
Exemplu: pentru textul a plantat cinci lalele visinii sau rosii
se afișează pe ecran, nu neapărat în această ordine, cuvintele alăturate. (10p.)
a
plantat
cinci
visinii

Răspunsuri la întrebare

Răspuns de lucaciucandrei
1

coroana te rog!

#include<iostream>

#include<cstring>

using namespace std;

int main(){

   char s[101]="";

   cin.getline(s,101);

   int sem=0,i=0;

   while(i<strlen(s)){

       while(s[i]==' '&&s[i]!='\0')

           i++;

       int j=i;

       while(s[j]!=' '&&s[j]!='\0')

           j++;

       j--;

       char voc;

       for(int x=i;x<=j;x++)

           if(strchr("aeiou",s[x])!=NULL){

               voc=s[x];

               break;

           }

       int sem2=1;

       for(int x=i;x<=j;x++)

           if(strchr("aeiou",s[x])!=NULL&&s[x]!=voc)

               sem2=0;

       if(sem2==1){

           sem=1;

           for(int x=i;x<=j;x++)

               cout<<s[x];

           cout<<endl;

       }

       i=j+1;

   }

   if(sem==0)

       cout<<"nu exista";

   return 0;

}

Alte întrebări interesante