I beg to differ. You imply that C-style strings aren't built into the language of C, yet they absolutely are. Ever write a string literal in a C program?

That is: char * mystring = "This is a string literal.";

That string literal gets compiled into your binary as a series of 25 bytes, the last of which most definitely contains the null terminator byte.

The reason we can say that C-style strings are inherently built into the C language is the presence of the NUL character that implicitly follows a string literal. That is a C convention (other languages do it too, you are right) but we do say the notion of a C-style string is inherent in the language. Also, if you read the K & R C book, they definitely acknowledge that C-style strings are an inherent 'feature' of the C language.