TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kaki en 08 de Agosto de 2010, 01:37:21

Título: Funcion strcmp()
Publicado por: kaki en 08 de Agosto de 2010, 01:37:21
Hola..
   Tengo una duda sobre la funcion strcmp. esta sirve para comparar si son iguales 2 variables char(no String, osea tiene un solo valor char).

ejemplo:
Código: [Seleccionar]
             char Valor='A';
             char Valor2='W';

            i = strcmp(tecla2,tecla3);
Yo hice una prueva y ne da que son iguales cuando A no es igual a W....

Espero que me entiendan
Título: Re: Funcion strcmp()
Publicado por: Suky en 08 de Agosto de 2010, 01:51:44
Probá con:

Código: C
  1. char Valor[2]="A";
  2.              char Valor2[2]="W";
  3.  
  4.             i = strcmp(tecla2,tecla3);

Porque hay que asignarle memoria para colocar el carácter \0, fin del string. Para eso es más sencillo hacer un if.


Saludos!
Título: Re: Funcion strcmp()
Publicado por: kaki en 08 de Agosto de 2010, 01:52:46
Ya lo solucion.. lo dejo por si a alguien le sirve algun dia!!

par comparar 2 bariables char que no son String osea que poseen un solo caracter se usa el ==.

Cual era el problema que tenia yo que en un If queria poner If (Valor != Valor2) pero el operador != no me lo toma como una desiguldad siino como una igualdad.

Entonces lo que hice If (!(Valor == Valor2)) y anduvo de 10.

Espero que entiendan algo.. y seria bueno si alguien puede contertar por que al operado != lo tomo como una igualdad...

Saludos
Título: Re: Funcion strcmp()
Publicado por: Suky en 08 de Agosto de 2010, 02:00:55
Claro, es comparar una variable con otra, por eso es más sencillo usar un if. Distinto es comparar un string, son varios datos y comparados posición a posición, no marearse con esos detalles  ;-)


Saludos!
Título: Re: Funcion strcmp()
Publicado por: ASTROCAR en 08 de Agosto de 2010, 04:32:49
buenas noches la verdad no le veo el problema al asunto sengun c en operaciones de este tipo == es igualdad y != es distindo y eso siempre ha sido asi; = solo es para asignar valor a una variable,

pero en fin ya solucionastes con la sentencia if de igual manera se podia hacer cosas si esa condicion es verdadera o falsa.

Saludos y estamos en contacto.
Atten.
Alexander Santana.
Venezuela-Barcelona.