Last active
October 21, 2019 21:08
-
-
Save parzibyte/1e63efaf64c0160ec82881f4e776105f to your computer and use it in GitHub Desktop.
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
/** | |
* Contar consonantes de una cadena en C usando simples comparaciones | |
* y la función isalpha | |
* | |
* @author parzibyte | |
* https://parzibyte.me/blog | |
* | |
* */ | |
#include <stdio.h> // Para printf | |
#include <ctype.h> // Para toupper y isalpha | |
// Función que indica si un carácter es vocal, ¿hace falta más explicación? | |
int esVocal(char letra) { | |
// Convertir a mayúscula para evitar hacer más comparaciones | |
char letraEnMayuscula = (char) toupper(letra); | |
return letraEnMayuscula == 'A' || | |
letraEnMayuscula == 'E' || | |
letraEnMayuscula == 'I' || | |
letraEnMayuscula == 'O' || | |
letraEnMayuscula == 'U'; | |
} | |
int contarConsonantes(char cadena[]) { | |
int consonantes = 0;// Almacenar la cantidad de consonantes | |
int i = 0;// El índice para recorrer la cadena | |
while (cadena[i]) { | |
// Si es del alfabeto pero no es vocal | |
if (isalpha(cadena[i]) && !esVocal(cadena[i])) { | |
consonantes++; | |
} | |
i++; | |
} | |
return consonantes; | |
} | |
int main() { | |
char cadena[] = "Hola mundo (hoy es 21 de octubre), vamos a contar las consonantes en C desde parzibyte.me"; | |
int consonantes = contarConsonantes(cadena); | |
printf("La cadena '%s' \ntiene %d consonantes", cadena, consonantes); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment