elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 18:41  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  Problema con If - Else if - Else
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Imprimir
Autor Tema: Problema con If - Else if - Else  (Leído 603 veces)
Cab Calloway
Colaborador

Desconectado Desconectado

Mensajes: 4.295



Ver Perfil
Re: Problema con If - Else if - Else
« Respuesta #15 en: 01 Junio 2008, 00:02 »

strcmp:
Localiza la primera aparición en la cadena apuntada por s1 de la secuencia de caracteres (excluyendo el carácter nulo) en la cadena apuntada por s2. La función retorna un puntero a la cadena encontrada, o un puntero nulo si no se encontró la cadena. Si s2 apunta a una cadena de longitud cero, la función retorna s1.

Mentira mentira mentira mentira cochina.

Mentiroso.

Pinocho.

strcmp devuelve un dato de tipo int, no un puntero.

Devuelve cero si dos cadenas son iguales, si la primera cadena es menor, en orden alfabético según su número ASCII, devuelve un número negativo, sino uno positivo.

Te odio, mentiroso.
En línea

Max 400; caracteres restantes: 366
Cab Calloway
Colaborador

Desconectado Desconectado

Mensajes: 4.295



Ver Perfil
Re: Problema con If - Else if - Else
« Respuesta #16 en: 01 Junio 2008, 00:06 »

PD: La verdad se funcionaliza en strstr().
En línea

Max 400; caracteres restantes: 366
Freeze.

Desconectado Desconectado

Mensajes: 2.463

FireSoft


Ver Perfil WWW
Re: Problema con If - Else if - Else
« Respuesta #17 en: 01 Junio 2008, 00:10 »

strcmp:
Localiza la primera aparición en la cadena apuntada por s1 de la secuencia de caracteres (excluyendo el carácter nulo) en la cadena apuntada por s2. La función retorna un puntero a la cadena encontrada, o un puntero nulo si no se encontró la cadena. Si s2 apunta a una cadena de longitud cero, la función retorna s1.

Mentira mentira mentira mentira cochina.

Mentiroso.

Pinocho.

strcmp devuelve un dato de tipo int, no un puntero.

Devuelve cero si dos cadenas son iguales, si la primera cadena es menor, en orden alfabético según su número ASCII, devuelve un número negativo, sino uno positivo.

Te odio, mentiroso.

Eso es lo que he aprendido del gran cconclase que la mayoria idrolatra :P

PD: tambien he usado strstr() y ha dado los mismos resultados. Osea que siempre me dice que el buffer es igual en los 3 :xD algo estupido com:

a = 1
b = 2
c = 3

Y a,b,c son iguales :xD
En línea

Un nuevo CMS, pruebalo:


Cab Calloway
Colaborador

Desconectado Desconectado

Mensajes: 4.295



Ver Perfil
Re: Problema con If - Else if - Else
« Respuesta #18 en: 01 Junio 2008, 00:32 »

Yo lo haría así.

Código
int main(){
   char cadena[]="Hola|Freeze";
   char cadenaaux[20];
   if(strstr(cadena,"|")){
      strncpy(cadenaaux,strstr(cadena,"|")+1,strlen(cadena)-strcspn(cadena,"|"));
      //Comprobaciones que quieras, if else lo que quieras
      //...
      //...
      }
   }

Ahí te copia en una cadena auxiliar la cadena con la que vas a trabajar. Aunque podrías hacerlo sin necesidad de copiarla y tener otra variable, pero bueno...
« Última modificación: 01 Junio 2008, 00:34 por Kasswed » En línea

Max 400; caracteres restantes: 366
SnakeDrak

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Problema con If - Else if - Else
« Respuesta #19 en: 01 Junio 2008, 00:42 »

Hola,

Antes de nada decirte que esto es para ayudarte y no para echarte en cara nada xD.

Cito a conclase:
Citar
strcmp:
La función retorna un número entero mayor, igual, o menor que cero, apropiadamente según la cadena apuntada por s1 es mayor, igual, o menor que la cadena apuntada por s2.

Es imposible que strcmp haga lo mismo que strstr, strstr es si encuentra en la cadena una determinada palabra, strcmp es si la palabra es idéntica y strcmpi es si la palabra es idéntica pero no distingue mayúsculas de minúsculas. (stristr también existe pero tienes que buscarla por internet creo)

También te recomiendo que no hagas cosas como esta:
Código:
if(strcmp(Buffer,"Ocultar"))
            {
               if(strcmp(Buffer,"Boton"))
               {
                  ocultar(1)
               }
            }

Sino así (cambiando ya a strstr que supongo que es lo que querías:
Código:
if(strstr(Buffer,"Ocultar")!=0 && strstr(Buffer,"Boton")!=0)
                  ocultar(1);

Seguro que querías hacer eso ya que para comparar en la función strcmp es:
Código:
if(strcmp("Encontrar string",en_esta_variable_o_cadena)==0)

Si encuentra "Encontrar string" en la variable "en_esta_variable_o_cadena" entraría al IF, sino no.

Otra cosa, cuando solo vayas a ejecutar 1 comando dentro de 1 if, else, while, for o similares, no hace falta que abras las llaves, en el ejemplo anterior ocultar se ejecutaría pero lo que le continua ya estaría fuera del if.

Saludos.
En línea
Freeze.

Desconectado Desconectado

Mensajes: 2.463

FireSoft


Ver Perfil WWW
Re: Problema con If - Else if - Else
« Respuesta #20 en: 01 Junio 2008, 00:48 »

A mi me gusta abrir llaves me pierdo menos ;)


Citar
Es imposible que strcmp haga lo mismo que strstr
No es que haga lo mismo, sino que me da el mismo resultado :P

Poco a poco le veo el queso a la tostada pero nada. Tengo esto :P
Código
if(strstr(Buffer,"|")){
              strncpy(sBuffer,strstr(Buffer,"|")+1,11);
              if (sBuffer == "BotonInicio")
              {
                 ocultar(1);
              }
              if (sBuffer == "BarraTareas" && i>1)
              {
                 ocultar(2);
              }
              if (sBuffer == "HoraeIconos" && i>1)
              {
                 ocultar(3);
              }
           }
En línea

Un nuevo CMS, pruebalo:


Freeze.

Desconectado Desconectado

Mensajes: 2.463

FireSoft


Ver Perfil WWW
Re: Problema con If - Else if - Else
« Respuesta #21 en: 01 Junio 2008, 01:13 »

Bueno, por fin la solucion es esta:
Código
char sBuffer[11];
 
           if(strstr(Buffer,"|")){
              strcpy(sBuffer,strstr(Buffer,"|")+1);
              printf("%s",sBuffer);
              if (strstr(sBuffer,"BotonInicio"))
                 ocultar(1);
              if (strstr(sBuffer,"BarraTareas") && i>1)
                 ocultar(2);
              if (strstr(sBuffer,"HoraeIconos") && i>1)
                 ocultar(3);
           }
En línea

Un nuevo CMS, pruebalo:


cΔssiΔnі

Desconectado Desconectado

Mensajes: 548


Ver Perfil
Re: Problema con If - Else if - Else
« Respuesta #22 en: 01 Junio 2008, 03:25 »

Deberías ayudarte con los "ELSE" para evitar hacer comparaciones innecesarias.

suerte en lo que haces!!!

En línea
Rozor

Desconectado Desconectado

Mensajes: 251


As I Walk Through The Valley Of The Shadow Of Dead


Ver Perfil WWW
Re: Problema con If - Else if - Else
« Respuesta #23 en: 01 Junio 2008, 03:46 »

strchr(var, 'R');

En línea

Suck my Dick!!!
Freeze.

Desconectado Desconectado

Mensajes: 2.463

FireSoft


Ver Perfil WWW
Re: Problema con If - Else if - Else
« Respuesta #24 en: 01 Junio 2008, 21:55 »

Deberías ayudarte con los "ELSE" para evitar hacer comparaciones innecesarias.
suerte en lo que haces!!!

Código
char sBuffer[11];
 
           if(strstr(Buffer,"|")){
              strcpy(sBuffer,strstr(Buffer,"|")+1);
              printf("%s",sBuffer);
              if (strstr(sBuffer,"BotonInicio"))
                 ocultar(1);
              else if (strstr(sBuffer,"BarraTareas") && i>1)
                 ocultar(2);
              else if (strstr(sBuffer,"HoraeIconos") && i>1)
                 ocultar(3);
           }
Si se me habia olvidado ;)
En línea

Un nuevo CMS, pruebalo:


Páginas: 1 [2] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats