Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
int x=12345678;
   int y=x/1000;
   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 (cpp) [Seleccionar]
int* parte(int valor, short int longitud)
{
   int *pedazos, l = 1, s = valor;
   while(longitud--)
       l *= 10;
   longitud=1;
   while(s/=l)
       longitud++;
   pedazos = new int[longitud];
   while(longitud--)
   {
       pedazos[longitud] = valor % l;
       valor /= l;
   }
   return pedazos;
}


si la usas así:
Código (cpp) [Seleccionar]
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