programa en c que cambia todas las vocales por una "e"

Iniciado por cerealtrox, 3 Septiembre 2021, 22:02 PM

0 Miembros y 1 Visitante están viendo este tema.

cerealtrox

 :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
    int i;
    char t[20];
    printf("Programa que cambia las vocales de un texto por la siguiente vocal\n");
    printf("Introduce el texto\n");
    scanf("%s",t);
    for(i=0;t[i]!='\0';i++){
                      if(t[i]=='a'){
                                    t[i]='e';
                                    }
                      else if(t[i]=='e'){
                                    t[i]='e';
                                    }
                      else if(t[i]=='i'){
                                    t[i]='e';
                                    }
                      else if(t[i]=='o'){
                                    t[i]='e';
                                    }
                      else if(t[i]=='u'){
                                    t[i]='e';
                                    }
                      }
    printf("%s\n",t);
    system("PAUSE");
    return 0;
}


MOD: Etiqueta GeShi

K-YreX

Ese programa es mejorable por todas partes...
  • Utiliza una constante para la longitud máxima del array o utiliza un array dinámico.
  • El programa dice que cambia las vocales de un texto por la siguiente vocal. De ahí yo entiendo que cambia 'a' -> 'e' | 'e' -> 'i' | 'i' -> 'o' | 'o' -> 'u' | 'u' -> 'a'.
  • No se debe utilizar scanf() para almacenar cadenas de texto. Si introduzco "Hola Mundo", la salida es "Hele"... ¿Qué ha pasado con "Mundo"?
  • Demasiado código para el if-else-if. Eso se puede hacer mucho más compacto y limpio.
  • No es recomendable usar <system("pause")>. Utiliza en su lugar <getchar()>. Obtendrás el mismo resultado, más eficiente y sin necesitar la librería <stdlib.h>.
  • La librería <string.h> tampoco está siendo utilizada.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

MAFUS

Bueno, seguramente está empezando y coincidirás conmigo que esa es la forma de hacer de la mayoría de los tutoriales de internet.

K-YreX

Cita de: MAFUS en  3 Septiembre 2021, 23:22 PM
Bueno, seguramente está empezando y coincidirás conmigo que esa es la forma de hacer de la mayoría de los tutoriales de internet.
Desde luego, pero la forma de publicar el código fue como "no sufráis más, ya he resuelto uno de los problemas del milenio y aquí lo tenéis".
Si hubiera publicado el mismo código pero con una frase como: "¿Cómo puedo mejorar este programa?", seguramente mi respuesta no habría sido tan tajante. Aunque no por tajante ha dejado de ser instructiva, ya que le enumeré algunas mejoras que podía implementar y alguna breve explicación del porqué.  :rolleyes: :rolleyes:
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;