👤

As dori o rezolvare la nivel de clasa 11 fara subpograme pentru problema 85 de pe pbinfo.Sunt inca la inceput cu sirurile si desi imi merge algoritmul imi da ceva ciudat la compilare.Las algortimul si textul problemei mai jos:
Să se scrie un program care citește un text și inserează după fiecare vocală caracterul *.
Restrcitii:
şirul de caractere citit va conţine cel mult 100 de caractere, litere mici ale alfabetului englez și spații
se consideră vocale următoarele caractere: a, e, i, o, u.
dacă cuvântul nu conține vocale se va afișa doar mesajul FARA VOCALE

Rezolvarea mea(as avea rugamintea sa imi spuneti de ce imi apar acele paranteze sau caractere ciudate la compilare.Incercati cuvinte precum "arma","accent").:
#include
#include
using namespace std;

int main()
{
char s[101];
int n,i,j,ok=0;
cin.get(s,101);
n=strlen(s);

for(i=0;i<=n-1;i++){
if(s[i]=='a' or s[i]=='e' or s[i]=='i' or s[i]=='o' or s[i]=='u'){
n++;
for(j=n-1;j>=i+1;j--){
s[j]=s[j-1];
}
s[i+1]='*';
ok=1;
i++;
}
}
if(ok==0)
cout<<"FARA VOCALE";
else cout<


Răspuns :

#include <iostream>#include <cstring>
using namespace std;
int main(){
char *s= new char [101],voc[]="aeiou";int i,ok=0,j;cin.get(s,101);for(i=0;i<strlen(s);i++)if (strchr(voc,s[i]))    ok=1;if (ok==0)    cout<<"FARA VOCALE";else{    
   for(i=0;i<strlen(s);i++)   if(strchr(voc,s[i]))   {       for(j=strlen(s)-1;j>=i+1;j--)        s[j+1]=s[j];       s[i+1]='*';

   }   cout<<s;}
    return 0;}