Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dailia__ en 18 Noviembre 2017, 17:33 pm



Título: Pasar un número a un vector
Publicado por: dailia__ en 18 Noviembre 2017, 17:33 pm
Hola,
Tengo que hacer un problema que para empezarlo necesito pasar de un número a un vector leyéndolo dígito a dígito, pero dice que el número es demasiado largo como para poder ponerlo en int y la verdad no sé que hacer. He estado leyendo algún caso en este mismo foro y pone que se utilice sprintf pero no vi ningún ejemplo y no sabría como hacerlo. ¿Podríais ayudarme?
Es decir: si tengo 1234512345123451234512345
a[0]=1 a[1]=2 a[2]=3...

Para poner un poco del código y que esté conforme con las reglas del foro como tengo que hacerlo?

Gracias


Título: Re: Pasar un número a un vector
Publicado por: MAFUS en 18 Noviembre 2017, 19:32 pm
Escribe el código y selecciónalo; en la barra de herramientas, arriba del recuadro verás una lista extensible con título 'Código GeSHi', pinchas sobre ella y eliges el lenguaje que está codificado tu código. Listo.


Título: Re: Pasar un número a un vector
Publicado por: dailia__ en 19 Noviembre 2017, 01:40 am
Okay, a ver que sale... si no es lo esperado pues lo siento, no lo veo y al poner C sale eso. Bueno, la cuestión es que he intentado este código para pasar de un int de 25 a una cadena y después a un vector, pero es que no da y aunque así fuese no entiendo el motivo de por que hay que hacerlo así. Alguien podría aclarar mis dudas?


Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. int main (void){
  5. char cad[26];
  6. int a[50], b[50], m, n, i, index;
  7. printf ("introduce numero de 25 cifras");
  8. scanf ("%d",&n);
  9. sprintf (cad, "%d",n);
  10. printf ("%s",cad);
  11. index=0;
  12. for (i=0; i<strlen(cad); i++){
  13. if(cad[i] >= '0' && cad[i] <= '9') {
  14. a[index] = cad[i] - '0';
  15. index++;
  16. }
  17. else{
  18. printf ("no es un numero\n");
  19. }
  20. }
  21. /*mostramos el vector*/
  22. printf ("vector\n");
  23. for (i=0; i<index; i++){
  24. printf ("%d\n",a[i]);
  25. }
  26. getch ();
  27. return 0;
  28. }
  29.  


Título: Re: Pasar un número a un vector
Publicado por: MAFUS en 19 Noviembre 2017, 01:53 am
Es cierto, un número de 25 caracteres es demasiado largo. Pero una cadena de texto también es un vector, así que lo que puedes hacer es capturar el número como si fuera una cadena y después mirar que todos los caracteres son dígitos. Recuerda que una cadena tiene el caracter NUL ( '\0' )al final.