Autor Tema: Error con cadenas en C18  (Leído 1454 veces)

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

Desconectado CHELOXR

  • PIC10
  • *
  • Mensajes: 3
Error con cadenas en C18
« en: 26 de Diciembre de 2012, 21:50:12 »
Estimados, buenas noches, mi consulta es respecto al siguiente fallo: Utilizando C18 V3.31 + MPLAB 8.53 sobre PIC18F14k50 pretendo que en una variable(int puntero) me retorne la posición de inicio de una comparación válida de cadenas realizado con puntero=strstrrampgm (CadenaRAM,CadenaROM). Resulta que descubrí que si no se incluye la libreria string, esto funciona perfecto, es decir que si se produce una comparación valida (la CadenaROM, está contenida en la CadenaRAM), la variable puntero contiene el valor de la posición de memoria RAM donde inicia la cadena. Cuando incluyo la librería string (#include <string.h>), el valor de retorno ahora ya no es la posición de RAM sino el valor del primer caracter de la conicidencia. y además me da un error de compilación E1311 (mismo tipo de asignación) con lo que debo modificar la sentencia a la siguiente forma: puntero=*strstrrampgm (CadenaRAM,CadenaROM) Obviamente el resto del programa necesita que este presente la librería STRING. He ensayado varias formas distintas de hacer lo que pretendo sin resultados. ¿A que se debe este comportamiento? he leido la ayuda de las librerías y debería funcionar como lo describí al principio. Cualquier sugerencia soy todo oidos ya que estoy un poco mareado. Un abrazo y gracias desde ya por sus sugerencias.