programa en c que cuente vocales,consonantes,digitos etc

Iniciado por ruben rodriguez, 19 Mayo 2017, 18:17 PM

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

ruben rodriguez

el programa consiste en imprimir de una frase el numero de vocales,consonantes,digitos,espacios en blanco y otros caracteres
hata ahora llevo resuelto esto


void contar(char linea[],int *vocales,int *consonantes,int *digitos,int *blanco,int *otros);

int main(void)
{

char frase[100];
int vocales=0;
int consonantes=0;
int digitos=0;
int blanco=0;
int otros=0;

printf("\n ESCRIBA UNA FRASE:");
gets(frase);
printf("\n Numero de vocales:%d",vocales);
printf("\n Numero de consonantes:%d",consonantes);
printf("\n Numero de digitos:%d",digitos);
printf("\n Numero de espacios en blanco:%d",blanco);
printf("\n Numero de otros caracteres:%d",otros);

getch();
}
void contar(char linea[],int *vocales,int *consonantes,int *digitos,int *blanco,int *otros)
{
int x=0;
int y=0;
char frase[100];
for(int x=0;x<strlen(frase);x++){
if(frase[x]=='a'|| frase[x]=='e' || frase[x]=='i' || frase[x]=='o' || frase[x]=='u');
{
*vocales++;
}
if(frase[x]=='b'|| frase[x]=='c' || frase[x]=='d' || frase[x]=='f' || frase[x]=='g' || frase[x]=='h' || frase[x]=='j' || frase[x]=='k' || frase[x]=='l' || frase[x]=='m' || frase[x]=='n' || frase[x]=='p' || frase[x]=='q' || frase[x]=='r' || frase[x]=='s' || frase[x]=='t' || frase[x]=='v' || frase[x]=='w' || frase[x]=='x' || frase[x]=='y' || frase[x]=='z');
{
*consonantes++;
}
   if(frase[x]<=0 && >=9);
{
*digitos++;
}
   if(frase[x])=="");
{
*blanco++;
}
}


}
}


Los códigos deben ir en etiquetas GeSHi



MAFUS

Busca info sobre la libreria ctype. Tiene funciones para saber si un caracter es alfabético, numérico, caracter en blanco, imprimible....

Tu algoritmo para consonantes es muy engorroso. Bastaría con que usaras isalpha para saber si es una letra y no es a e i o u.

De igual forma tu algoritmo para los números està mal. Tu buscas la representación de los números, no los valores del 0 al 9. Recuerda que el valor decimal 0 indica el fin de cadena.

ruben rodriguez

gracias por el consejo creeme que no me sabia esa libreria