Le stringhe C sono convenzionalmente terminate dal carattere 0. In questa maniera è possibile determinarne la lunghezza scorrendo l'array e fermandosi quando si incontra uno zero, che per inciso è ciò che fa il tuo ciclo while (la condizione che ci hai messo significa "finché il valore è vero", e vero in C è "diverso da zero").
La funzionalità di quel while è fornita dalla funzione di libreria strlen, del file <string.h>·