Autor Tema: convertir string a int c18  (Leído 2972 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jmvc_sc

  • PIC10
  • *
  • Mensajes: 12
convertir string a int c18
« en: 13 de Octubre de 2011, 19:01:52 »
Hola, mi consulta es la siguiente estoy ingresando datos por medio de un teclado 4x4, escribo en la pantalla lcd el numero "452", luego leo el lcd primero el "4" y lo almaceno en d1 ( d4=ReadDataXLCD() ) ,paso a la siguiente posicion del lcd y leo "5" y lo almaceno en d2 y por ultimo "2" almaceno en d3 (d1,d2,d3 son tipo unsigned char) ahora quiero convertir esos tres datos a un entero (unsigned int).
Seria convertir un dato tipo string a int o me equivoco, he visto una funcion "atoi", no se si puedo agrupar los d1,d2,d3 en una sola cadena para luego covertir toda la cadena a entero y si tengo que llamar a la libreria stdlib.h. Me podrian decir como utilizar atoi o en todo caso cual funcion me permitiria hacer tal conversion.

Mucha gracias
atte jmvc

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: convertir string a int c18
« Respuesta #1 en: 13 de Octubre de 2011, 20:35:34 »
Tienes que guardar los caracteres ascii en un arreglo y despues usas atoi:


char String[4]="";
unsigned char k;


String[0]='1';
String[1]='2';
String[2]='3';


atoi(k,String);


Revisa el Help de C18: C:\MCC18\doc

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado jmvc_sc

  • PIC10
  • *
  • Mensajes: 12
Re: convertir string a int c18
« Respuesta #2 en: 21 de Octubre de 2011, 17:08:52 »
gracias Suky ya pude hacer la conversión, solo tengo una duda el tamaño de string tiene que ser mayor al numero de digitos del numero a convertir, por ejempo:
si tengo un numero de 5 cifras mi string tiene que tener un tamaño de 6

 char String[6]="12345"

atoi(String);           // esta es la forma como pude convertir, de esa forma me funciona pero no se si sea correcto

Otra duda que tengo es la declaracion de la variable k que luego la utilizas en atoi(k,String);

Muchas gracias
atte jmvc

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: convertir string a int c18
« Respuesta #3 en: 21 de Octubre de 2011, 18:14:16 »
Revisa la ayuda, pero k es la variable que guardará la conversión (Lo mio fue de memoria, pero seguro lo que implementas es correcto). Luego, si es necesario tener en cuenta el espacio del carácter nulo para indicar que termina el string.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado jmvc_sc

  • PIC10
  • *
  • Mensajes: 12
Re: convertir string a int c18
« Respuesta #4 en: 04 de Noviembre de 2011, 17:09:46 »
En forma inversa seria

unsigned int DATO;
unsigned char String[6];

DATO=12345;
itoa(DATO,String);

El numero entero(DATO=12345) se convierte en strig(String), luego ya podemos enviar al LCD

putsXLCD(String);

jejeje gracias por la ayuda.