• Sábado 16 de Noviembre de 2024, 11:36

Autor Tema:  Comparar char con int.  (Leído 5873 veces)

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Comparar char con int.
« en: Lunes 20 de Abril de 2009, 03:48 »
0
Hola a todos.
la duda que me aqueja es la siguiente:

Código: C++
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int a, b=10;
  4. main(){
  5.            do{
  6.                printf("Ingrese numero");
  7.                scanf("%d",&a);
  8.                }while( ???  );
  9.             if(a == b){
  10.                            printf("A es igual  a B");
  11.                           }
  12.             }
  13.  

He puesto un codigo simple, pero que representa mi duda.

Al pedir ingresar un numero por teclado, si se ingresa un caracter en la variable se guarda solo vasura,
entoces como puedo hacer para validar que este sea entero y asi volver a pedir el dato una ves q se ingresa un caracter?

explicado de otra forma:

Código: C
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. char a[10];
  4. main(){
  5.        do{
  6.        printf("Ingresa palabra: ");
  7.        scanf("%s",a);
  8.        }while(atoi(a)!=0);
  9.        printf("nnmuestro palabra: %snn");
  10.        system("pause");
  11.        }
  12.      
  13.  

aca si ingreso un numero me pide que ingrese una palabra nuevamente... yo lo necesito al revez, que si ingreso caracteres me pida un numero nuevamente.

espero me puedan ayudar, saludos

pd: estoy programando en en dev c++.

betopin

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
    • http://www.programasenc.blogspot.com
Re: Comparar char con int.
« Respuesta #1 en: Lunes 20 de Abril de 2009, 06:24 »
0
Elabora una funcion que valide los ASCIIS ingresados...si estan dentro del rango de numeros lo transformas con el atoi, sino vuelves y solicitas ingreso de info

Saludos!

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar char con int.
« Respuesta #2 en: Lunes 20 de Abril de 2009, 11:52 »
0
Código: C
  1. }while(atoi(a)==0);
  2.  

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Comparar char con int.
« Respuesta #3 en: Lunes 20 de Abril de 2009, 15:43 »
0
Cita de: "m0skit0"
Código: C
  1. }while(atoi(a)==0);
  2.  


si m0skit0, pero quisiera saber como puedo hacer declarando un tipo de dato Numerico, no de caracter.
solo quisieras saber si hay una funcion que haga eso y cual es.

saludos

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar char con int.
« Respuesta #4 en: Lunes 20 de Abril de 2009, 16:09 »
0
Cita de: "utz"
si m0skit0, pero quisiera saber como puedo hacer declarando un tipo de dato Numerico, no de caracter.
No soy adivino, y no vino  :bad:

Lo que dices ya lo tienes hecho:
Código: C
  1. int num;
  2. [...]
  3. }while(num=atoi(a)==0);
  4.  

betopin

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
    • http://www.programasenc.blogspot.com
Re: Comparar char con int.
« Respuesta #5 en: Lunes 20 de Abril de 2009, 16:52 »
0
Podrias validar el valor de retorno de scanf al capturar un dato. Como sabes, al capturar valida que lo que se ingrese corresponda al tipo de dato y al modificador enunciados en el comando

Ej

Código: C
  1. if (scanf("%d", &numero) == 1)
  2.       printf("El numero introducido fue %dn", numero);
  3.  

Quiza pueda servirte

Saludos

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar char con int.
« Respuesta #6 en: Martes 21 de Abril de 2009, 09:42 »
0

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Comparar char con int.
« Respuesta #7 en: Martes 21 de Abril de 2009, 09:56 »
0
Cita de: "m0skit0"
int isdigit(int c);


Código: C
  1.  
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<ctype.h>
  5.  
  6. main(){
  7. int a, i;
  8. char cadena [6];
  9. ETIQUETA:
  10. printf("Ingrese numero");
  11. fgets (cadena, sizeof (cadena), stdin);
  12. for(i=0; isdigit (cadena[i]); i++);
  13. if(i==0 || (cadena[i]!='n' && cadena[i]))
  14. {
  15. printf ("Numero no valido. Nuevamente ");
  16. goto ETIQUETA;
  17. }
  18. a = atoi (cadena);
  19. printf("El valor de a es: %d",a);
  20. }
  21.  


gracias por tu ayuda m0skit0  xD :good:

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar char con int.
« Respuesta #8 en: Martes 21 de Abril de 2009, 10:15 »
0
De nada, pero no uses goto, ni uses isdigit() como condición de un for. Usa while. Con esto te echarían de cualquier trabajo en el que tuvieras un jefe programador, aparte de suspenderte programación.

Salud

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Comparar char con int.
« Respuesta #9 en: Martes 21 de Abril de 2009, 18:57 »
0
ok, gracias por el consejo xD