Re: [Grulic-dev] comparar si 2 cadenas son ==

Página superior
Adjuntos:
+ (text/plain)

Responder a este mensaje
Autor: Fernando Hevia
Fecha:  
A: 'Lista de desarrollo de software libre'
Asunto: Re: [Grulic-dev] comparar si 2 cadenas son ==
> -----Mensaje original-----
> De: grulic-dev-bounces@???
> [mailto:grulic-dev-bounces@???] En nombre de Leonardo Rios
> Enviado el: Domingo, 02 de Marzo de 2008 12:36
> Para: grulic-dev@???
> Asunto: [Grulic-dev] comparar si 2 cadenas son ==
>
> Estoy haciendo una parte de codigo que compara si dos cadenas
> son iguales que muestre un printf ("cadenas iguales"); si son
> distintas que muestre printf("cadenas distintas") Estoy
> usando fgets y fputs como input y output que parte del codigo
> esta mal ?
>
> /*************************************/
> #include <stdio.h>
> #include <string.h>
>
> int main () {
>
>     char user_name[10];    
> char comparar[10];
>
>     printf("Un nombre(Maximo 10 caracteres)\n");
> fgets (user_name, 10, stdout);
>     fgets(comparar, 10, stdout);
> while (strcmp (user_name,comparar) != 0);
> fputs (user_name, stdout);
> return 0;
>
> }
>


Hola Leonardo, te sugiero que para simplicidad en tu programa mantengas los
nicks en una lista y no en vectores de arrays.
De todas maneras, este es el código para lo que estás queriendo hacer:

#include <stdio.h>
#include <string.h>

#define MAX_NICK_LEN 10

void leernick(char *nick) {
int n;
fgets(nick, MAX_NICK_LEN, stdin);

/* fgets guarda el newline leido y debo eliminarlo */
n=strlen(nick);
nick[n-1]=0;
}

int main(){
char newnick[MAX_NICK_LEN];
char usednick[MAX_NICK_LEN];

/* Para la prueba asumo que el usuario pedrito ya esta conectado */
strcpy(usednick, "pedrito");

printf("Ingrese su nick (max. 10 caracteres): ");
leernick(newnick);

while(strcmp(newnick, usednick) == 0) {
/* El usuario ya existe, pido otro */
printf("Ese nick ya está siendo utilizado. Ingrese otro por favor: ");
leernick(newnick);
}

printf("Bienvenido %s al chat!\n", newnick);
}