Informatică, întrebare adresată de thambor, 9 ani în urmă

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<


thambor: Cineva vro idee?

Răspunsuri la întrebare

Răspuns de tofanstefan263
0
#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;}


thambor: poti sa imi explici putin? pentru ce e biblioteca #include <cstring> precum si funtia strcht?
thambor: Si daca ai putea sa imi explici de ce mie imi apar acele paranteze si numere ar fi super
tofanstefan263: strchr cauta vocalele in sir
tofanstefan263: iar cstring e necesar ptr siruri
thambor: ok...cred ca voi invata la scoala la momentul respectiv.Dar acum de ce imi apar chestiile alea cand imi rulez eu programul,desi e aproximativ la fel
Alte întrebări interesante