Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: LucasNahuel en 6 Mayo 2016, 15:28 pm



Título: Duda STRCMP
Publicado por: LucasNahuel en 6 Mayo 2016, 15:28 pm
Quiero hacer una funcion para modificar un nombre, clave o correo, de un usuario comparando el NICK QUE YA SE INGRESO en pasos anteriores, pero siempre me entra en el Else y no entiendo por que..


Citar
void modificarUsuarios(sUsuario input[],int cantidad) //sUsuario es el tipo de estructura que estoy utilizando
{
int i;
char auxNick[26];
    

    printf("ingrese Nombre de nick que desea modificar");
    scanf("%s", auxNick);

    for(i=0; i<cantidad; i++)
    {
        if(strcmp(input[ i ].nickUsuario,auxNick)==0)
        {
           //desarrollo.
        }
       else
       {
        
        }
    }
}//termina funcion


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 15:38 pm
Imagino input.nickUsuario no estara vacia.... o si ?

Para que mueves el contador i ? en el fragmento no se alcanza a ver




Título: Re: Duda STRCMP
Publicado por: LucasNahuel en 6 Mayo 2016, 15:41 pm
disculpas, no me agarra los corchetes, pero tiene un corchete y en el medio un I para que busque dentro de la estructura la coincidencia.. Disculpa el desorden pero soy nuevo en el foro


Título: Re: Duda STRCMP
Publicado por: AlbertoBSD en 6 Mayo 2016, 15:41 pm
No se alcanza a ver el codigo completo. Antes del for manda a imprimir la variable auxNick para ver que tiene esa funcion que tienes como gets no es muy estandar... no se que haga realmente


Título: Re: Duda STRCMP
Publicado por: LucasNahuel en 6 Mayo 2016, 15:48 pm
perdon, es que lo estoy sacando de un trabajo practico que estoy haciendo, y esta todo desordenado, y no me di cuenta que esta tan desordenado la cosa, pero de a poco lo voy ordenando a ver si se entiende


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 16:08 pm
Quizas puedas decir que quieres hacer..... en algunos casos es mejor  ;D

No necesitas recorrer con un for() caracter a caracter tu "string" ya que eso lo hace la propia funcion strcmp!

https://es.wikipedia.org/wiki/Strcmp


Título: Re: Duda STRCMP
Publicado por: LucasNahuel en 6 Mayo 2016, 16:11 pm
arriba en el mensaje puse, quiero hacer una funcion que compare un nick ya ingresado con el que se pide en la funcion, pero ingrese lo que ingrese, entra en el ELSE


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 16:19 pm
Mas bien deberias pedir un nick (por ejemplo en el main) y ahi mismo hacer un strcmp() ya que encapsula la comparacion char a char hasta la longitud que tu le digas.

Si te devuelve 0 (que equivale a false), llamas ahi mismo a una funcion pideNick()

No es necesario hacer una funcion modificaNick() para lo que estas pidiendo..... si la haces es por otro motivo.


Título: Re: Duda STRCMP
Publicado por: LucasNahuel en 6 Mayo 2016, 16:25 pm
hago la funcion porque me piden el trabajo practico y que dentro del main haya un switch con cada case de 1 o 2 lineas de codigo, y todo lo demas desarollado con funciones y bibliotecas


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 16:43 pm
La funciones para CRUD (crear-leer-modificar-borrar) no tienen nada extraño pero lo raro (mal) es llamar a modificar cuando ni siquiera ha pasado la validación.

En ese caso debes volver a llamar a tu leer (pedirUsuario, leerUsuario o como quieras llamarle)


Título: Re: Duda STRCMP
Publicado por: MAFUS en 6 Mayo 2016, 16:58 pm
strcmp busca una correspondencia 1 a 1 entre las dos cadenas por tanto
  • ¿Hay diferencias de capitalización entre las dos cadenas?
  • ¿Usas una família gets por un lado y scanf por otro? (las famílias fgets guardan el '\n', scanf no lo guarda)
  • Cuándo guardas los nicks en main, o donde sea, ¿estás seguro que no quedan carácteres en el buffer de entrada y se los pasas a la siguiente cadena cuándo vuelves a pedir datos?


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 16:59 pm
Busca correspondencia 1 a 1 hasta la longitud que especifiques, en ese sentido busca una subcandena; de acuerdo con todo lo demás.


Título: Re: Duda STRCMP
Publicado por: LucasNahuel en 6 Mayo 2016, 17:32 pm
HABIA UN ERROR EN CUANDO PEDIA EL NICK AL PRINCIPIO, Y COMO LO GUARDABA, UNA TONTERIA QUE LO HICE DISTRAIDO, GRACIAS A TODOS IGUAL !


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 17:35 pm
Busca correspondencia 1 a 1 hasta la longitud que especifiques, en ese sentido busca una subcadena; de acuerdo y muy apropiado mencionar todo lo demás.


Título: Re: Duda STRCMP
Publicado por: MAFUS en 6 Mayo 2016, 17:53 pm
Busca correspondencia 1 a 1 hasta la longitud que especifiques, en ese sentido busca una subcandena; de acuerdo con todo lo demás.

Eso es strncmp  :rolleyes:


Título: Re: Duda STRCMP
Publicado por: HardForo en 6 Mayo 2016, 18:02 pm
Tienes razón  :xD