此函数永远不会返回1,始终为strcmp(auxiliar->nick,nuevonick) != 0
int comparar_nick(char *nuevonick){
struct _usuario *auxiliar;
auxiliar = primerousuario;
while (auxiliar!=NULL) {
if( strcmp(auxiliar->nick,nuevonick) == 0 ) return 1;
auxiliar = auxiliar->siguiente;
}
return 0;
}
答案 0 :(得分:1)
请注意gets
已过时。如果您使用fgets
来阅读输入,则会保留输入的任何newline
。您可以使用此代码删除newline
。
#include <stdio.h>
#include <string.h>
...
char instring[100];
int found;
if(fgets(instring, sizeof instring, stdin) != NULL) {
instring [ strcspn(instring, "\r\n") ] = 0; // remove trailing newline etc
found = comparar_nick(instring);
}