Warum sollte man in C ++ std :: string über c-style Strings setzen?

"Man sollte immer verwendenstd :: string über C-Streicher (char *) "ist ein Rat, der für fast jeden hier geposteten Quellcode auftaucht. Obwohl der Rat zweifellos gut ist, erlauben es die tatsächlich angesprochenen Fragen nicht, das zu erläuternWarum? Aspekt der Beratung im Detail. Diese Frage soll als Platzhalter dafür dienen.

Eine gute Antwort sollte folgende Aspekte (im Detail) abdecken:

Warum sollte man verwendenstd::string über c-style Strings in C ++?Was sind die Nachteile (falls vorhanden) der in#1?Was sind die Szenarien, in denen das Gegenteil der in#1 ist eine gute Praxis?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage