Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: bryanrz96 en 29 Octubre 2015, 18:29 pm



Título: Eliminar vocales C++
Publicado por: bryanrz96 en 29 Octubre 2015, 18:29 pm
Que me falta para eliminar las vocales, me invierte la palabra, pero no me imprime la palabra sin vocales.
 Aqui el codigo.
Código
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. void inverti(char v[], char ris[])
  6. {
  7. int len=strlen(v);
  8. for(int i=0; i<len; i++)
  9. {
  10. ris[i]=v[len-i-1];
  11.  
  12. }
  13. ris[len]='\0';
  14. cout<<v<<endl;
  15. cout<<ris<<endl;
  16. }
  17. void toglivocali(char v[], char ris[])
  18. {
  19. int len=strlen(v);
  20. int j=0;
  21. for(int i=0; i<len;i++)
  22. {
  23. if(v[i]=='a' || v[i]=='e' || v[i]=='i' || v[i]=='0' || v[i]=='u')
  24. {
  25. ris[j]=v[i];
  26. j++;
  27. }
  28. }
  29. ris[j]='\0';
  30. cout<<ris<<endl;
  31. }
  32.  
  33.  
  34. int main() {
  35.  
  36. char s1[256];
  37. char s2[256];
  38. char s3[256];
  39. cout<<"dammi stringa"<<endl;
  40. cin>>s1;
  41.  
  42. inverti(s1,s2);
  43. toglivocali(s2,s3);
  44. cout<<"il risultato finale č:"<<s3<<endl;
  45. cout<<s2;
  46.  
  47. return 0;
  48. }

Gracias


Título: Re: Eliminar vocales C++
Publicado por: class_OpenGL en 30 Octubre 2015, 14:33 pm
Es un error de lógica:

Código
  1. void QuitarVocales(char v[], char ris[]) {
  2.    int len=strlen(v);
  3.    int j=0;
  4.  
  5.    for(int i=0; i<len;i++) {
  6.        if(v[i]!='a' && v[i]!='e' && v[i]!='i' && v[i]!='o' && v[i]!='u' &&
  7.           v[i]!='A' && v[i]!='E' && v[i]!='I' && v[i]!='O' && v[i]!='U') {
  8.            ris[j]=v[i];
  9.            j++;
  10.        }
  11.    }
  12.  
  13.    ris[j]='\0';
  14. }

Si el caracter es distinto de cualquier vocal, entonces si que se guarda en el resultado