Αρχικά καλό είναι να βάζεις τίτλο στην ερώτηση σου ώστε εάν τύχει και έχουν και άλλοι την ίδια απορία με σένα να μπορούν να βρουν γρήγορα την απάντηση που ψάχνουν.
Πάμε τώρα στην ερώτηση. Πριν απαντήσω θα σου πω ότι υπάρχει ένα χρήσιμο εργαλείο εκεί έξω που λέγεται man page(manual page). Aυτός είναι ένας οδηγός για πολλές συναρτήσεις εκεί έξω που θα χρειαστεί να χρησιμοποιήσεις. Μία από αυτές είναι η
gets()
Μπορείς να δεις το man page της gets εδώ: gets' man page
Αυτό αναφέρει το εξής:
gets() reads a line from stdin into the buffer pointed to by s until either a terminating newline or EOF, which it replaces with a null byte ('\0'). No check for buffer overrun is performed (see BUGS below).
Που σημαίνει ότι όταν στέλνεις χαρακτήρα αλλαγής γραμμής (δηλαδή όταν πατάς enter στο πληκτρολόγιο σου) η gets το αναγνωρίζει ως το τέλος της συμβολοσειράς και το αντικαθιστά με το '\0'. Επομένως δεν μπαίνει ποτέ στο if(a[0] == '\n') γι' αυτό και δεν τυπώνεται ποτέ το empty. Καλό θα ήταν να χρησιμοποιήσεις ένα while loop που θα διαβάζει έναν - έναν τους χαρακτήρες εισόδου μέσω της συνάρτησης getchar() και έτσι θα έχεις τον πλήρη έλεγχο εσύ.
Τέλος, η gets() δεν είναι καλή συνάρτηση, αν από περιέργεια πας και λίγο παρακάτω στο man page θα δεις αυτό:
it is extremely dangerous to use. It has been used to break computer security.
Προς το παρών δε χρειάζεται να ξέρεις περισσότερα γι' αυτό. Αλλά να το θυμάσαι. :)) Καλή συνέχεια.