SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: vrash en Martes 19 de Febrero de 2008, 17:24
-
Aqui vengo con una nueva duda, quiero pasar una cadena char a una int, ¿se puede?
Es decir, si yo introduzco en una cadena char A el valor '12', quiero pasarlo a una cadena int B, de tal modo que B[0]= 1 y B[1]=2.
Lo intente con atoi, pero solo me puede mandar la cadena entera a un solo espacio, y no caracter por caracter.
He buscado y y de veras no he encontrado nada, espero que me puedan ayudar.
Saludos
-
No se entiende bien lo que queres, las cadenas de por si son solo de caracteres y no de ningun otro tipo. Si lo que queres es un array de ints entonces resta a cada caracter 48 (lo que viene a ser el valor ASCII de '0').
-
Yo inserto un numero en una cadena char A.
Inserto el numero 12, por ende, el numero 1 se guarda en la posicion A[0] y 2 en la posicion A[1].
Ahora quiero pasarlo a int, utilizando atoi con una cadena int B me saldria esto:
B[0] = 12
Y eso es exactamente lo que no quiero, quiero pasar esa cadena char a una cadena int para que quedara:
B[0] = 1
B[1] = 2
No quiero que el numero de mi cadena char se guarde todo junto, lo que quiero es que se guarde el primer caracter en el primer espacio del int, el segundo caracter en el segundo espacio del int y asi.
No se como se pueda hacer eso, ya que utilice el atoi asi:
for(i=0;i<6;i++)
{
B[i]=atoi(A[i]);
}
Y por obvias razones no lo hace, esta incorrecto ese codigo. Se me ocurrio una idea, la hare y les comento en un rato si me salio, de todos modos espero sus respuestas.
Gracias por su interes.
-
mira puedes de esta forma pero es la mas inapropiada ya que se puede hacer en menos lienas .
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(void)
{ char p[2]="13";
int l,i=0,j;
int v[2]={0};
clrscr();
l=strlen(p);
j=l;
while(l>0)
{ if(p=='1')
v=1;
if(p=='2')
v=2;
if(p=='3')
v=3;
if(p=='4')
v=4;
l--;
i++;
}
for(i=0;i<j;i++)
printf("%d ",v);
}
espero que tu puedas optimizarlo, y sirve que pones a prueba tu logica :P
-
NO EXISTEN LAS CADENAS INT. atoi devuelve un int asi que lo que queres es un array de ints, lo podes hacer perfectament con un bucle y lo que te dije antes.
-
Muchas gracias Eternal Idol, solucion rapida y sencilla. Tambien agradezco que me corrijas mi vocabulario, es cierto que no existen cadenas de int, se les llama arrays, espero no volver a cometer errores con mi vocabulario.
Saludos.
-
De nadas :comp: