2016-05-10 34 views
-3

這個函數永遠不會返回1,總是strcmp(auxiliar->nick,nuevonick) != 0Ç - 錯誤的結果(STRCMP)

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; 
} 
+3

你確定這些值是否相等? –

+1

可能需要修剪。 – BLUEPIXY

+4

是'fgets()'涉及的地方? –

回答

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); 
}