A string is a data type, defined in the standard library under the header <string>.
A C-string is an array of characters. I generally use the string from the standard library, as it comes with functions like string.length(), and because it has no fixed size (so you can add and remove characters from it, unlike with a C-string).
Also, the length of the buffer and the length of the c-string are not always equal. You absolutely can modify a c-string by adding chars or removing them, so long as the *buffer* is sufficient for this. consider