> All the listed weaknesses also have benefits. For instance it is easy to get a substring without need to copy.
To make substring in some other languages, you need to store pointer to beginning of the substring and length of substring.
To make substring in C, you need to store pointer to beginning of the substring and put '\0' into original string.