C - 错误的结果(strcmp)

时间:2016-05-10 14:40:20

标签: c

此函数永远不会返回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;
}

1 个答案:

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