Um welche Programmiersprache oder Bibliothek geht es denn?
Ins Blaue geraten würde ich vermuten, dass ein C-String der unter C übliche Zeiger auf ein durch ein Nullbyte terminiertes Array von Zeichen ist, während ein String wahrscheinlich eine Längeninformation zusätzlich zum Arrayzeiger mitbringt und ein "höherer", stärker "gemanagter" Datentyp ist.
When C++ is your hammer, every problem looks like your thumb.