C++ Primer says
For most applications, in addition to being safer, it is also more efficient to use library strings rather then C-style strings
Strings are the object which contain character arrays within themselves along with their size and other functionalities.It is better to use strings from strings library because they save you from allocating and deallocating memory, looking out for memory leaks and other pointer hazards. But as strings are objects, so they take extra space in memory.
Cstrings are simply character arrays. They SHOULD be used when you are working in real time; when you do not know completely about how much memory space you have in hand. If you are using cstrings, you would have to take care for memory allocation, then copying data into it via strcpy or character by character, then deallocating after its usage, etc,etc. So better use strings from string library if you want to avoid a bunch of head aches.
Strings increase program efficiency but reduce processing efficiency(though not necessarily). Vice versa is with cstrings