• Miércoles 6 de Noviembre de 2024, 04:32

Autor Tema:  Pasar Cadena Char A Cadena Int  (Leído 2352 veces)

vrash

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Pasar Cadena Char A Cadena Int
« en: Martes 19 de Febrero de 2008, 17:24 »
0
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

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Pasar Cadena Char A Cadena Int
« Respuesta #1 en: Martes 19 de Febrero de 2008, 18:14 »
0
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').

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

vrash

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Pasar Cadena Char A Cadena Int
« Respuesta #2 en: Martes 19 de Febrero de 2008, 19:09 »
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:

Código: Text
  1.  
  2. for(i=0;i<6;i++)
  3. {
  4. B[i]=atoi(A[i]);
  5. }
  6.  
  7.  
  8.  

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.

fORU-

  • Miembro MUY activo
  • ***
  • Mensajes: 225
  • Nacionalidad: mo
    • Ver Perfil
Re: Pasar Cadena Char A Cadena Int
« Respuesta #3 en: Martes 19 de Febrero de 2008, 19:59 »
0
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
atte:fORU-

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Pasar Cadena Char A Cadena Int
« Respuesta #4 en: Martes 19 de Febrero de 2008, 20:32 »
0
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.

Código: Text
  1.  
  2. b[x] = a[x] - '0';
  3.  
  4.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

vrash

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Pasar Cadena Char A Cadena Int
« Respuesta #5 en: Miércoles 20 de Febrero de 2008, 03:35 »
0
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.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Pasar Cadena Char A Cadena Int
« Respuesta #6 en: Miércoles 20 de Febrero de 2008, 08:10 »
0
De nadas  :comp:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.