TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jeremylf en 14 de Abril de 2009, 20:20:28

Título: Strings en el CCS
Publicado por: jeremylf en 14 de Abril de 2009, 20:20:28
Hola. Esto:

Código: [Seleccionar]
void Main(void)
{   
   char str[2] = {'A', '1'};
   
   if (str == "A1")
   {
      output_high(PIN_B4);
   }
   
   while (true)
   {   
   }
}

Esta bien? Ocea, se supone que deberia prender el led verdad? Pero nunca prende.

Tambien probe asi:
Código: [Seleccionar]
char str[] = "A1";

...Esto que quiere decir? No es lo mismo el c para uc's que para la pc o no es muy potente el compilador del ccs o es algun error ¿?¿?¿? Prosiaca he probado con el CCS 4.023 y 4.068.


Gracias, un saludo.
Título: Re: Strings en el CCS
Publicado por: jeremylf en 14 de Abril de 2009, 21:00:38
Olvide decir, se supone (CREO) que se debe de usar la libreria stlib.h o una de esas para el manejo de strings PERO porq el CCS me deja compilarlo ????? creo que esa seria la pregunta  :lol:


Un saludo.
Título: Re: Strings en el CCS
Publicado por: migsantiago en 14 de Abril de 2009, 21:10:18
No, no es igual. La variable string existe en lenguajes como c++ o c# pero no en el c de ccs.

Además si deseas usar strings recuerda colocar el null char al final de todo string...

char string[3]={'a','1',NULL};

o lo que es igual

char string[3]="A1"; //CCS incluye automáticamente el null char en este caso

Si en el programa usas str así:

Código: [Seleccionar]
int8 variable;
char str[2] = {'A', '1'};

...

variable=str;

El contenido de variable será la dirección de memoria en donde está alojado el primer char, en este caso sería la dirección de memoria donde está la 'A'. Eso equivale a:

Código: [Seleccionar]
variable=&str[0];
Si deseas comparar strings tendrás que incluir la librería strings.h y usar funciones como strcmp().

Y te recuerdo, todo string (arreglo de chars en CCS) que vayas a manejar con cualquier función de strings.h deberá contener un null char al final, de lo contrario tendrás problemas de acceso de memoria. Si el máximo número de chars va a ser 2, entonces el array deberá tener 3 localidades.

Otra forma de hacer la comparación es haciéndolo char por char en un ciclo for. Esto ahorraría rom de programa al no incluir strings.h.
Título: Re: Strings en el CCS
Publicado por: jeremylf en 14 de Abril de 2009, 21:31:45
Vaya, gracias migsantiago. Si, alfinal creo que usare string.h o un con un ciclo for.

Gracias.
Título: Re: Strings en el CCS
Publicado por: migsantiago en 14 de Abril de 2009, 21:37:40
Ahorra rom, el for es la mejor opción  :mrgreen:
Título: Re: Strings en el CCS
Publicado por: jeremylf en 14 de Abril de 2009, 22:29:01
ROM tengo de sobra, aunq como solo quiero comparar un string con otro, creo q bastaria con for  :D

Título: Re: Strings en el CCS
Publicado por: gera en 14 de Abril de 2009, 22:51:12
Lo mas facil en estos casos es usar las funciones de la libreria string.h. Hay una funcion q se llama strcmp que devuelve 0 si dos cadenas son iguales.
saludos!!!
Título: Re: Strings en el CCS
Publicado por: micro_cadaver en 17 de Abril de 2009, 17:34:13
yo prefiero ahorrar ROM y tomar RON  :-)
Título: Re: Strings en el CCS
Publicado por: migsantiago en 17 de Abril de 2009, 18:48:05
 :D :D :D

Es más barato el RON que la ROM en estos tiempos de crisis  :P
Título: Re: Strings en el CCS
Publicado por: MLO__ en 17 de Abril de 2009, 22:11:15
El problema es que con mucho RON crees que estas ahorrando mas ROM .... ya al otro dia te daras cuenta
Título: Re: Strings en el CCS
Publicado por: migsantiago en 17 de Abril de 2009, 22:36:07
ya que el tema es serio  :| :D
Título: Re: Strings en el CCS
Publicado por: micro_cadaver en 18 de Abril de 2009, 07:47:37
depende de cuanto RON puede ayudarte a optimizar la ROM , hay casos en que no  :ni)
Título: Re: Strings en el CCS
Publicado por: MLO__ en 18 de Abril de 2009, 12:14:04
Pues con litro y medio de RON a mi se me flashea la ROM!!!
Título: Re: Strings en el CCS
Publicado por: micro_cadaver en 18 de Abril de 2009, 12:18:25
 :D :D :D
Pues con litro y medio de RON a mi se me flashea la ROM!!!
Título: Re: Strings en el CCS
Publicado por: Nocturno en 19 de Abril de 2009, 01:44:37
¡Panda de borrachos!, ¡todo el día pensando en lo mismo!  :D
Título: Re: Strings en el CCS
Publicado por: MLO__ en 19 de Abril de 2009, 01:54:40
 :D :D :D
Llego el que sabe!!!!! del manejo de strings claro esta, que es de lo que se trata este hilo
 :D :D :D
Título: [*] Re: Strings en el CCS
Publicado por: Nocturno en 19 de Abril de 2009, 02:15:30
¿Strings?, ¿qué es eso?  :lol:
Título: Re: Strings en el CCS
Publicado por: MLO__ en 19 de Abril de 2009, 02:19:41
Es la abreviacion, luego de litro y medio de ROM(N), de It's Drinks?
Título: [*] Re: Strings en el CCS
Publicado por: Nocturno en 19 de Abril de 2009, 02:28:26
 :-/ :-/ :-/
Título: Re: Strings en el CCS
Publicado por: jeremylf en 19 de Abril de 2009, 03:05:57
 :D :D :D