• Viernes 8 de Noviembre de 2024, 18:48

Autor Tema:  Funcion isdigit() con un arreglo char puros numeros  (Leído 2211 veces)

jaaj

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Funcion isdigit() con un arreglo char puros numeros
« en: Lunes 22 de Febrero de 2010, 08:18 »
0
Bueno tengo un problema con una funcion pero por mas que pienzo no puedo concluirla y resolverla tengo un arreglo char a[13]; lo que quiero es que ese arreglo solo acepte numeros o signo "+" se que tengo que usar la funcion isdigit para valir que sea un numero el problema es que esa funcion solo es para un digito trato de recorrer el arreglo pero no me sale alguien tiene una idea no pido el codigo solo que me den ideas.

se lo agradeseria

droezva

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Funcion isdigit() con un arreglo char puros numeros
« Respuesta #1 en: Lunes 22 de Febrero de 2010, 09:41 »
0
Hola, bueno lo que te suguiero es que recorras tu array con un for e ir validando cada uno de los elementos del array con la función isdigit() o si es el signo +.

Aunque si el caso es de almacenar un numero positivo pues tambien podrias tratar de convertir esa cadena en un int con la funcion atoi, esta funcion regresa 0 cuando no se ha logrado convertir la cadena a un valor entero. y podrias verificar si es positivo o negativo.

Bueno espero que te sirva. :)

Vndecid

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: Funcion isdigit() con un arreglo char puros numeros
« Respuesta #2 en: Sábado 27 de Marzo de 2010, 23:38 »
0
Yo te recomiendo que la funcion isdigit() la hagas vos....es agarrar una tabla ASCII

una cosa parecida (supongo por que no la conocia a es funcion) seria

//Con una cadena normalizada...

int esdigitomasomenos(char *linea)
{
   char *aux;

   aux=linea;
 
  while(*aux!='')
  {
      if(((*aux>=48 && *aux<=57 ) || (*aux=='+' || *aux=='-')))
         aux++;
     else
       return 1;
}

if(*aux=='')
      return 0;
}

Creo que esta bien devuelve un 0 si la cadena esta compuesta por numero o pro + o por - y 1 si no es asi...OJO la cadena no tiene que tener el 'n' que se agrega despues de apretar el enter con fgets....