Created
August 7, 2019 23:28
-
-
Save parzibyte/b46e3e0371c5ec41b5231d4f487dbfc6 to your computer and use it in GitHub Desktop.
Contar vocales de una cadena en ANSI C - https://parzibyte.me/blog/2018/09/21/contar-vocales-de-una-cadena-en-c/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <ctype.h> | |
// Definición | |
int contarVocales(char *cadena); | |
int main(int argc, char const *argv[]) | |
{ | |
// Un arreglo de longitud de 1000 | |
// porque no podemos tener arreglos de longitud dinámica ni strings | |
char entrada[1000]; | |
printf("Escribe una cadena:\n"); | |
gets(entrada); | |
int vocales = contarVocales(entrada); | |
printf("El numero de vocales que tiene la cadena es: %d\n", vocales); | |
return 0; | |
} | |
//Cuerpo de la función | |
int contarVocales(char *cadena){ | |
int vocales = 0; | |
// Recorrer toda la cadena | |
for (int indice = 0; cadena[indice] != '\0'; ++indice){ | |
// Obtener el char de la posición en donde está el índice | |
// y por otro lado convertirla a minúscula | |
// Así no importa si ponen 'A' o 'a', ambas letras serán convertidas a 'a' | |
char letraActual = tolower(cadena[indice]); | |
if ( | |
letraActual == 'a' || | |
letraActual == 'e' || | |
letraActual == 'i' || | |
letraActual == 'o' || | |
letraActual == 'u' | |
) | |
{ | |
vocales++; | |
} | |
} | |
return vocales; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment