Re: [Grulic-dev] comparar 2 cadenas

Página superior
Adjuntos:
+ (text/plain)
Eliminar este mensaje
Responder a este mensaje
Autor: Rafael Carrascosa
Fecha:  
A: Lista de desarrollo de software libre
Asunto: Re: [Grulic-dev] comparar 2 cadenas
Ademas de lo que dicen los muchachos, ojo con esto:
sizeof(users[n_user].username) tipicamente 4. El parametro ahi tiene que ser
un numero que no supere la cantidad de bytes del arreglo... en tu caso 100
esta bien. Notar que si el usuario ingresa 150 bytes no va a haber un '\n'
al final de la primera string leida (que va a tener longitud 100) y que la
segunda vez que quieras que el usuario "escriba" algo va a terminar de
vaciar el buffer con los 50 caracteres restantes (esta vez el ultimo va a
ser '\n').
Saludos!

2008/4/18 Leonardo Rios <>:

> Hola,
> Como puedo comparar 2 cadenas mediante strcmp
>
> Tengo la siguiente estructura:
>
> int n_user;
> struct struc_user {
>
>        int *number_user;
>        char username[100];

>
> } users[10]
>
>
> Luego guardo la estructura como:
>
> puts("Ingrese el nombre de usuario");
> fgets(users[n_user].username, sizeof(users[n_user].username), stdin);
>
> Ahora si tengo
>
> if((strcmp(users[n_user].username, "root") == 0)) ||
> (strcmp(users[n_user].username, "admin") == 0) {
>
> printf("Nick reservado. Ingrese otro por favor: \n");
> }
>
> printf("Nick NO reservado.");
>
> cuando lo ejecuto, y escribo root o admin no me tira el printf
> correspondiente.
> Cual es mi error? Podemos comparar un arreglo de estructura con un
> string (root o admin)?
>
> O podria hacer algo como:
>
> char s =users[n_user].username;
> ((strcmp(s, "root") == 0))
>
> Tambien probe de este modo pero no hay caso
>
>
> --
> /* Leonardo Rios
> * rios[dot]lj[at]gmail[dot]com
> */
> _______________________________________________
> Grulic-dev mailing list
>
> https://mx.grulic.org.ar/mailman/listinfo/grulic-dev
>