fgets() ne fait rien de particulier avec les espaces (il s'arrête seulement au premier newline ou à la fin du fichier). Si tu as un problème avec les espaces, le problème est ailleurs dans ton code.
Pour le test sur la longueur du nom, tu peux parcourir les N caractères de equipe1.perso[i].nomperso à la recherche d'un '\0'. Si tu n'en trouve pas, c'est le nom a été tronqué. Par contre si tu veux accepter jusqu'à 20 caractères dans un nom, il te faut un buffer de 22 caractères (20 + 1 pour le '\n' + 1 pour le '\0').