TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pablolode en 22 de Diciembre de 2010, 13:24:51
-
buenas gente,tengo este sensillo codigo que no se donde le estoy fallando que nunca me da como resultado 0
char dato2[4]="\0"
...
if (strcmp(dato2,"out")==0)//compara datos si son iguales
dato=55; //iguales
else
dato=54;
strcpy(dato2,borraBuff); //pone a 0 bufefer dato2
como resultado siempre obtengo mayor que 0
estoy compilando con c18
-
Hola.
La funcion strcmp() permite comparar strings como tu lo escribes en C18? ... prueba primero copiar el string "out" en otra variable y comparalas a ver que sucede ... en CCS no se puede apuntar a constantes.
Saludos
-
copie el strin en una variable y funciona
char dato1[]="out";
char dato2[4];
...
if (strcmp(dato2,dato1)==0)//compara datos si son iguales
{...}
ahora me urge una duda tengo que comparar una cadena que recibo con varias por ejemplo 15 cadenas,
ami se me ocurre asi pero creo que es mucho codigo y seguro lleva bastante tiempo comparar las 15 de esta manera:
char dato1[]="xxx1"
char dato2[]= "xx2"
... ......
char dato2[]= "xx15"
if (strcmp(dato_recibido,dato1)==0)//compara datos si son iguales
{...}
if (strcmp(dato_recibido,dato2)==0)//compara datos si son iguales
{...}
.......
.......
......
// esto lo repito unas 15 veces para compara la cadena recibida con mi dato guardado¡¡¡¡¡¡¡
alguna manera de optimizarla????
-
Hola.
Que bueno que te funcionara, en C18 tampoco se puede apuntar variables en ROM.
Para lo otro, prueba declarar una variable en donde copies los strings uno a uno y los comparas dentro de un ciclo for.
Saludos
-
...en C18 tampoco se puede apuntar variables en ROM...
Eso es erróneo, puede que la función no acepte punteros a rom (En C18 es muy fácil trabajar con punteros a rom y puntero a funciones ), pero eso ya es otra cosa. ;-) En la ayuda indica que tipo de variables acepta.
Saludos!
-
...en C18 tampoco se puede apuntar variables en ROM...
Eso es erróneo, puede que la función no acepte punteros a rom (En C18 es muy fácil trabajar con punteros a rom y puntero a funciones ), pero eso ya es otra cosa. ;-) En la ayuda indica que tipo de variables acepta.
Saludos!
Que bueno saberlo amigo Suky. Gracias por la aclaración.
Saludos