Intentando ayudar al compañero Algec del FORO me he encontrado con este problema:
- Este primer programa funciona perfectamente:
Codigo:
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay (clock=4000000)
#include <lcd.c>
#use fast_io(B)
#use fast_io(D)
main()
{
//char cadena[]={"1","3","7"}; //OK
char cadena[]="137"; //OK
char *pcadena;
int n;
lcd_init();
set_tris_b(0x00);
set_tris_d(0x00);
pcadena=cadena;
for (n=0;n<3;n++)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"cadena[%u] = %c",n,*(pcadena+n));
delay_ms(2000);
}
}
Pero al intentar usar la función atoi con punteros a caracteres me devueve 0 en los tres casos de conversión a entero:
Codigo:
#include <16f877a.h>
#include <stdlib.h>
#fuses XT,NOWDT,NOPROTECT
#use delay (clock=4000000)
#include <lcd.c>
#use fast_io(B)
#use fast_io(D)
main()
{
//char cadena[]={"1","3","7"}; //OK
char cadena[]="137"; //OK
char *pcadena;
int n;
lcd_init();
set_tris_b(0x00);
set_tris_d(0x00);
pcadena=cadena;
for (n=0;n<3;n++)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"cadena[%u] = %u",n,atoi(*(pcadena+n)));
delay_ms(2000);
}
}
¿Sabriais encontrarle una solución?