In C you have char*

Which isn't very good for substrings due to the null-termination requirement.

And the type system does not tell you if you need to call free on this char* when you’re done with it.

In C you only have char*.

wchar exists.

(And the possibility to implement whatever you want, ofc.)