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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  funcion para saber si es numero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: funcion para saber si es numero  (Leído 4,592 veces)
Geek7

Desconectado Desconectado

Mensajes: 57


Be Free!


Ver Perfil
funcion para saber si es numero
« en: 29 Julio 2010, 20:55 pm »

quiero verificar si lo ingresado es un numero (o no es una cadena alfabetica).

intente esto pero no me funciona:
 
Código
  1. #include <iostream>
  2. #include <cctype>
  3.  
  4. using namespace std;
  5.  
  6. int main () {
  7.    do {
  8.  
  9.    cout << "Cual es tu edad?" << endl;
  10.    cin >> edad;
  11.  
  12.    } while(isalpha(edad));
  13.  
  14. return 0;
  15.  
  16. }
  17.  
  18.  


En línea

.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: funcion para saber si es numero
« Respuesta #1 en: 29 Julio 2010, 21:02 pm »

Nunca la use pero creo que debes declarar edad del tipo char

Saludos...


En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: funcion para saber si es numero
« Respuesta #2 en: 29 Julio 2010, 21:04 pm »

En la tabla ASCII los números van desde 48 hasta 57. Por lo tanto si haces:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. char a = 48;
  8.  
  9. cout << a << endl;
  10.  
  11.        cin.get();
  12.  
  13. return 0;
  14. }

Te mostrará por pantalla el número 0. Como ya sabes en que valor empieza y en que valor termina, puedes jugar con if().

Saludos :P
« Última modificación: 31 Agosto 2010, 16:05 pm por Horricreu » En línea

.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: funcion para saber si es numero
« Respuesta #3 en: 29 Julio 2010, 21:06 pm »

seh pero el problema esta en los numero de varios digitos, debe verificar varias cosas... Pa eso esta la funcion... aunque yo ni idea del funcionamiento interno de esa funcion...

Saludos...
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: funcion para saber si es numero
« Respuesta #4 en: 29 Julio 2010, 21:13 pm »

seh pero el problema esta en los numero de varios digitos, debe verificar varias cosas... Pa eso esta la funcion... aunque yo ni idea del funcionamiento interno de esa funcion...

Saludos...


Sí, es verdad. Referente a la función isalpha(), los parámetros son un char y un locale y, la función es de la libraría locale. Te he puesto el enlace de la función en C++, ya que veo que estás programando en él.

Saludos :P
« Última modificación: 26 Agosto 2010, 00:30 am por Horricreu » En línea

.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: funcion para saber si es numero
« Respuesta #5 en: 29 Julio 2010, 21:20 pm »

Segun lo que vi, en el prototipo espera es un entero, pero pes no se como funciona por alla adentro  :xD

Código
  1. int isalpha ( int c );
  2.  

http://www.cplusplus.com/reference/clibrary/cctype/isalpha/

Saludos...
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: funcion para saber si es numero
« Respuesta #6 en: 29 Julio 2010, 21:24 pm »

Segun lo que vi, en el prototipo espera es un entero, pero pes no se como funciona por alla adentro  :xD

Código
  1. int isalpha ( int c );
  2.  

http://www.cplusplus.com/reference/clibrary/cctype/isalpha/

Saludos...

Vuelvo a rectificar. La función para C++ se pasan un char y un locale. isalpha().

Saludos :P

EDITO: he escrito lo mismo en el comentario anterior.
« Última modificación: 26 Agosto 2010, 00:29 am por Horricreu » En línea

rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Re: funcion para saber si es numero
« Respuesta #7 en: 29 Julio 2010, 23:31 pm »

Hola, yo haria algo asi:
Código
  1. #include <iostream>
  2. #include <cctype>
  3.  
  4. using namespace std;
  5.  
  6. bool esCaracter(char *edad);
  7.  
  8. int main()
  9. {
  10.    char edad[2];
  11.    do
  12.    {
  13.        cout << "Cual es tu edad?:" <<endl;
  14.        cin >> edad;
  15.    }while(esCaracter(edad));
  16. }
  17.  
  18. bool esCaracter(char *edad)
  19. {
  20.    int i = 0;
  21.    while(edad[i])
  22.    {
  23.        if(isalpha(edad[i]))
  24.            return true;
  25.        i++;
  26.    }
  27.    return false;
  28. }
  29.  

Igual se puede optimizar más, pero es la idea.

Saludos

Saludos
« Última modificación: 29 Julio 2010, 23:33 pm por rob1104 » En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: funcion para saber si es numero
« Respuesta #8 en: 31 Julio 2010, 20:41 pm »

¡Buenas!

Si lo que quieres es saber si es un numero, lee en una cadena el valor que llega desde teclado y con la funcion isdigit
Código
  1. int isdigit(int c);
podras saber si cada uno de los caracteres de la cadena es un digito. Luego puedes utilizar la funcion de conversion que quieras para pasar la cadena al tipo de dato que quieras...

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines