bien que ma première réponse pouvait te sembler désagréable, il n'en est rien. Ce qui m'étonnait, c'est de voir que tu avais codé une structure de liste chainée, basée sur des allocations mémoires et de la gestion de pointeur. Ce qui fait que tu as les bases nécessaires pour résoudre à ton propre problème.
Une possibilité dans ton code, si tu dis que ton code passe directement dans ton else, alors ta condition est fausse, pour cela, vérifier les valeurs des deux variables utilisées, afin de voir si elles ne contiennent pas de '\n' qui pourrait fausser ta condition.