Try using fgets(). It will read a complete line from a stream of your choice (stdin, I guess you're looking for). An example for your case:
char address[100];
fgets(address, 100, stdin);
fgets() will read at most the number of characters passed in the second argument (minus one). No buffer overflow, and you'll get the whole line up to and including a newline character (or up to EOF). Note that since a maximum number of characters to read is one of the parameters, it is possible that you will get a partial line. Check to see if the last character in the returned string is '\n', and you'll know you got a complete line. EOF detection is pretty straightforward too; a NULL
return value and a check to errno
should help you out.
Thanks to Chris (below), for the point about partial lines.