elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con Switch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Switch  (Leído 3,501 veces)
higor24

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema con Switch
« en: 17 Noviembre 2010, 17:21 pm »

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...

Código:
#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ódigo:
c=tolower(c);
Esto que significa?

Luego, si primero declara un entero, como es que despues usa %c?


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Problema con Switch
« Respuesta #1 en: 17 Noviembre 2010, 19:05 pm »

La función tolower() convierte un Tipo de dato carácter a minúscula (A-Z a a-z).

Código
  1. #include <stdio.h>
  2.  
  3. char c;
  4. int main(){
  5.   printf("Ingrese un carácter\n");
  6.   scanf("%c", &c);
  7.   c = tolower(c);
  8.   if ( (c>='a') && (c<='z') ){
  9.      if ( (c== 'a') || (c== 'e') || (c== 'i') || (c== 'o') || (c== 'u')){
  10.         printf("Es vocal\n");
  11.      }else{
  12.         printf("Es consonante\n");
  13.      }
  14.   }else{
  15.      if((c>='0') && (c<='9')){
  16.         printf("Es numérico\n");
  17.      }else{
  18.         printf("Otro caracter\n");
  19.      }
  20.   }
  21.  
  22.   return 0;
  23. }

Resultado,
Código
  1. alex@shellroot:~/Escritorio$ gcc PoC.c
  2. alex@shellroot:~/Escritorio$ ./a.out
  3. Ingrese un carácter
  4. e
  5. Es vocal
  6. alex@shellroot:~/Escritorio$ ./a.out
  7. Ingrese un carácter
  8. 1
  9. Es numérico
  10. alex@shellroot:~/Escritorio$ ./a.out
  11. Ingrese un carácter
  12. w
  13. Es consonante
  14. alex@shellroot:~/Escritorio$


« Última modificación: 17 Noviembre 2010, 19:17 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Fer995

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Problema con Switch
« Respuesta #2 en: 19 Noviembre 2010, 16:41 pm »

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:

Código
  1. if ( (c>='A') && (c<='Z') )
  2. c += 32;
  3.  

Un saludo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con el Switch en C « 1 2 »
Programación C/C++
Samnov 13 11,323 Último mensaje 6 Diciembre 2010, 15:05 pm
por winroot
vpcf126fm problema con el switch del wireless
Dudas Generales
gmpv 0 3,261 Último mensaje 18 Septiembre 2011, 20:39 pm
por gmpv
Problema con switch y Roku
Redes
b2k 3 2,090 Último mensaje 2 Julio 2013, 03:01 am
por mugre
Problema con comando switch
Programación C/C++
oliverm 1 1,764 Último mensaje 9 Julio 2013, 01:05 am
por rir3760
Problema con Switch y ficheros.
Programación C/C++
assembly 2 1,978 Último mensaje 31 Agosto 2013, 16:42 pm
por assembly
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines