Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Pasar a un Arreglo

Estas en el tema de Pasar a un Arreglo en el foro de C/C++ en Foros del Web. Saludos Tengo lo siguiente: char contrato_final[8]; Y dentro de contrato_final esta la cadena "12345678" Ahora necesito separar cada digito en una variable separada. Pienso que ...
  #1 (permalink)  
Antiguo 17/08/2006, 08:46
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años
Puntos: 1
Pasar a un Arreglo

Saludos

Tengo lo siguiente:

char contrato_final[8];

Y dentro de contrato_final esta la cadena "12345678"

Ahora necesito separar cada digito en una variable separada. Pienso que seria pasarlo a un arreglo y luego preguntar por cada posición.

Algo como:

int contrato2[8];

sprintf(contrato2,"%s",contrato_final)

printf("%s",contrato2[0]);
printf("%s",contrato2[1]);


Pero no se como hacerlo.

Me ayudan?
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #2 (permalink)  
Antiguo 17/08/2006, 16:04
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
bueno, al menos ya los separas, tal vez te refieras a convertir cada valor individual char en un entero.

tienes que restar al caracter correspondiente a un numero, el caracgter '0'

ejemplo:

char car = '3';

int val = (int)car - '0';

//val tendra el valor 3 y no el correspondiente codigo ascii de '3'.

si quieres convertir la cadena entera a un entero usa atoi. o sscanf y sprntf.
  #3 (permalink)  
Antiguo 17/08/2006, 18:43
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Jaja, ya como lo tenia estaba bien, solo un pequeñisimo detalle:

sprintf(&contrato2[0],"%d",contrato_final[0]);
Esto ten convirte el char a int y lo pone en la lista.
De aqui puedes usar un for o while para hacer las 8 asignaciones o puedes hacerlo manualmente:

sprintf(&contrato2[0],"%d",contrato_final[0]);
sprintf(&contrato2[1],"%d",contrato_final[1]);
sprintf(&contrato2[2],"%d",contrato_final[2]);
sprintf(&contrato2[3],"%d",contrato_final[3]);
sprintf(&contrato2[4],"%d",contrato_final[4]);
sprintf(&contrato2[5],"%d",contrato_final[5]);
sprintf(&contrato2[6],"%d",contrato_final[6]);
sprintf(&contrato2[7],"%d",contrato_final[7]);

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:04.