Και η ονομασία c-string αυτό ακριβώς σημαίνει: πίνακας χαρακτήρων που περιέχει τουλάχιστον έναν μηδενικό χαρακτήρα μέσα του (ο οποίος σηματοδοτεί το τρέχον μήκος του c-string).
Αν δεν περιέχει μηδενικό χαρακτήρα, τότε δεν είναι c-string, αλλά σκέτο string... απλώς οι 2 όροι πολλές συχνά χρησιμοποιούνται ως ισοδύναμοι στην C. Αν λοιπόν για παράδειγμα περάσεις στην puts ως όρισμα έναν πίνακα από χαρακτήρες χωρίς να έχεις εξασφαλίσει πως περιέχει κάπου μέσα του έναν μηδενικό χαρακτήρα, η puts() θα τυπώνει συνέχεια χαρακτήρες (ξεκινώντας από την αρχή του πίνακα που της πέρασες)... κάποια στιγμή θα βρει κάποιον μηεδινκό χαρακτήρα, αλλά κατά 99.999% θα έχει ξεπεράσει το μέγιστο μήκος που είχες ορίσει για τον πίνακα που της πέρασες... θα φτάσει δηλαδή με άλλα λόγια στον.. .γάμο του καραγκιόζη
Πάντως οι συμβολισμοί που χρησιμοποιεί η printf() και η scanf() είναι πολύ πιο βατοί να τους θυμάται κανείς... το %c είναι για έναν χαρακτήρα (από το char) ενώ το %s είναι για ολόκληρο string (από το string).


