Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Last active October 21, 2019 21:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/1e63efaf64c0160ec82881f4e776105f to your computer and use it in GitHub Desktop.
Save parzibyte/1e63efaf64c0160ec82881f4e776105f to your computer and use it in GitHub Desktop.
/**
* 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