Hola, estoy tratando de desarrollar un programa, en donde el usuario presione una tecla y luego into, y el programa diga si se trata de una vocal/consonante/numero, todo esto usando switch en vez de if-else. Pero el problema es que no se como hacerle para que una variable pueda contener una letra o un número. Un código que se acerca a lo que busco es este, pero...
#include <stdio.h>
#include<conio.h>
int c;
void main()
{ printf ("Ingrese un caracter\n");
scanf ("%c",&c);
c=tolower(c);
if ((c>='a')&&(c<='z'))
if ( (c== 'a')|| (c== 'e')|| (c== 'i')|| (c== 'o')|| (c== 'u'))
printf("Es vocal");
else
printf("Es consonante");
else
if((c>='0') && (c<='9'))
printf("Es numérico");
else
printf("Otro caracter");
getch();
}
Hay cosas de ahi que no entiendo, por ejemplo...
c=tolower(c);
Esto que significa?
Luego, si primero declara un entero, como es que despues usa %c?
La función tolower() convierte un Tipo de dato carácter a minúscula (A-Z a a-z).
#include <stdio.h>
char c;
int main(){
printf("Ingrese un carácter\n");
scanf("%c", &c);
c = tolower(c);
if ( (c>='a') && (c<='z') ){
if ( (c== 'a') || (c== 'e') || (c== 'i') || (c== 'o') || (c== 'u')){
printf("Es vocal\n");
}else{
printf("Es consonante\n");
}
}else{
if((c>='0') && (c<='9')){
printf("Es numérico\n");
}else{
printf("Otro caracter\n");
}
}
return 0;
}
Resultado,
alex@shellroot:~/Escritorio$ gcc PoC.c
alex@shellroot:~/Escritorio$ ./a.out
Ingrese un carácter
e
Es vocal
alex@shellroot:~/Escritorio$ ./a.out
Ingrese un carácter
1
Es numérico
alex@shellroot:~/Escritorio$ ./a.out
Ingrese un carácter
w
Es consonante
alex@shellroot:~/Escritorio$
Hola!
La respuesta de "Shell Root" es buena.
Yo solo añado que si no te gusta la funcion tolower la puedes quitar y poner esto en su lugar:
if ( (c>='A') && (c<='Z') )
c += 32;
Un saludo!