Ejercicios Resueltos de Punteros en C++. Función que calcula el número de vocales de una cadena

Función C++ que reciba la dirección de inicio de una cadena de caracteres y devuelva el número de vocales que hay en la cadena.

#include <iostream>
using namespace std;

int cuenta_vocales(char *);

int main()
{
   char cadena[80];
   cout << "Introduce cadena: ";
   cin.getline(cadena, 80);  

   //en la llamada a la funcion se envía
  //el array de caracteres
   cout << "Numero de vocales: " << cuenta_vocales(cadena) << endl;
   system("pause");
}

int cuenta_vocales(char *s) //s contiene la direccion de inicio del array de caracteres
{
 int cont=0;
 while(*s) //mientras no llegue al nulo
 {
    switch(toupper(*s)) //toupper pasa el carácter a mayúsculas para hacer la comprobación.
     {                          //el carácter original no se modifica.
       case 'A':
       case 'E':
       case 'I':
       case 'O':
       case 'U':  cont++;
     }
     s++;
  }
  return cont;
}

8 comentarios:

  1. Bunaaa. me funciono este codigo perfecto para mi tarea

    ResponderEliminar
  2. no funciona wey xd xxd -.- !como hago que funcione ? en que programa :(

    ResponderEliminar
  3. Le añadí algunas cosillas

    #include stdio.h
    #include stdlib.h
    #include ctype.h


    void CuentaVocales(char *);

    int main()
    {
    char cadena[15];
    printf("Introduce una palabra para contar sus vocales: ");
    fflush(stdin);
    gets(cadena);
    CuentaVocales(cadena);
    }

    void CuentaVocales(char *s){
    int contador=0,a=0,e=0,i=0,o=0,u=0;
    while(*s){
    switch(toupper(*s)){
    case 'A':
    a++;
    contador++;
    break;
    case 'E':
    e++;
    contador++;
    break;
    case 'I':
    i++;
    contador++;
    break;
    case 'O':
    o++;
    contador++;
    break;
    case 'U':
    u++;
    contador++;
    break;
    }
    s++;
    }
    printf("La cadena tiene %i vocales\n\n",contador);
    printf("A: %i\n",a);
    printf("E: %i\n",e);
    printf("I: %i\n",i);
    printf("O: %i\n",o);
    printf("U: %i\n",u);

    }

    ResponderEliminar
  4. Gracias. Funciona en mi máquina. Y, el ejemplo resulta muy educativo.
    Dario

    ResponderEliminar