Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alexis33de en 20 Julio 2010, 04:29 am



Título: Cortar numeros
Publicado por: alexis33de en 20 Julio 2010, 04:29 am
Hola tengo una pequeña duda , alguien sabe algun algoritmo para cortar numeros es decir por ejm tengo esta sucecion de numeros 0123456789 y quisiera dividirla en grupos de a 3 o de a 4 quedando a si
(0123)
(4567)
(89) ,etc
alguien sabe de q manera podria cortarlos?
SALUDOS


Título: Re: Cortar numeros
Publicado por: .:BlackCoder:. en 20 Julio 2010, 04:33 am
Pero lo estas guardando en una cadena? O en una variable int?


Título: Re: Cortar numeros
Publicado por: do-while en 20 Julio 2010, 05:07 am
¡Buenas!

Si trabajas con numeros enteros, tienes algunas opciones.

1- Los operadores aritmeticos (recuerda como funciona una division)
2- Pasar el numero a una cadena y posteriormente manipularlo (te tocara estudiar las cadenas)
3- (No se me ocurria otra opcion, pero por si la habia, no he dicho que fuesen dos)  :silbar:

¡Saludos!


Título: Re: Cortar numeros
Publicado por: [L]ord [R]NA en 20 Julio 2010, 05:09 am
almacenalos en un string o en un array de chars


Título: Re: Cortar numeros
Publicado por: .:BlackCoder:. en 20 Julio 2010, 05:14 am
A mi se me ocurre dividirlo entre 10 a la i, q seria la varable de un for que vaya de 4 en 4... Un ejemplo...

Código
  1. int x=12345678;
  2.    int y=x/1000;
  3.    cout<<y<<endl;

Saludos...

EDITO:

Eso no se entiende  :xD lo hice mas o menos como te dije... lo q pasa es que soy mejor en la practica  :xD No puedo ponerte el codigo...

Pero lo que hice fue que al numero le reste el resultado de dividir el numero entre 10 a la 4... Es decir entre 10000 y multiplicado nuevamente entre 10000... El casting lo hace todo  :xD

Me llevo como 5 lineas  :xD pero si no pones avance no puedo poner  el code

Saludos


Título: Re: Cortar numeros
Publicado por: leogtz en 20 Julio 2010, 06:59 am
Yo sin dudarlo sería transformarlo a un array de caracteres y así procesarlo.


Título: Re: Cortar numeros
Publicado por: Og. en 20 Julio 2010, 07:40 am
Código
  1. int* parte(int valor, short int longitud)
  2. {
  3.    int *pedazos, l = 1, s = valor;
  4.    while(longitud--)
  5.        l *= 10;
  6.    longitud=1;
  7.    while(s/=l)
  8.        longitud++;
  9.    pedazos = new int[longitud];
  10.    while(longitud--)
  11.    {
  12.        pedazos[longitud] = valor % l;
  13.        valor /= l;
  14.    }
  15.    return pedazos;
  16. }

si la usas así:
Código
  1. parte(0123456789, 4);

te devolverá un arreglo así:

[0 ][1     ][2     ]
[1 ][2345][6789]

el que te lo devuelva alrrevez (como lo pediste):

[0     ][1     ][2]
[1234][5678][9]

ya tu lo deberás modificar :P

es solo una idea. Ojala te sirve de algo, Saludos!


Título: Re: Cortar numeros
Publicado por: Littlehorse en 20 Julio 2010, 11:18 am
Definitivamente, leer el contenido en una cadena y luego procesarlo previa validación es la forma mas eficiente, estable, y segura de hacerlo.

Saludos