First question: Linked list or hash table for address book:
Answer: SQL. Really. This sort of conundrum for how to store and retrieve data has an answer and NEVER SHALL THOU ROLL THINE OWN*.
*Except if you're a student and learning how to roll.
Which you are. And this is an assignment. So both options are "wrong", but since it's just a learning exercise, go for it. Whatever man. Yeah, go with a linked list and re-arrange the nodes every time you want to sort it by a different parameter. That sounds like a fun yet horrifying experience.
Second questions: When I'm trying to read from the file and load the pre-existing entries into my linked list how am I going to exclude the "Name: " part which is in the file?
fscanf(f_file, "Name: %s", nameArrayTypeThing);
And hope they don't have spaces in their name and the file isn't corrupted. It'll be good enough for an assignment.