In C ++ habe ich dieses Programm:
%Vor%Ich erhalte den folgenden Fehler:
%Vor% Wo konvertiere ich von char
zu const char*
? Kann ich an der Position 0 einer Zeichenfolge kein Zeichen einfügen?
Es gibt keine std::string::insert
, die nur eine Position und ein Zeichen benötigt. Was Sie wollen, ist insert(0, 1, '(')
, das 1 Zeichen an der Position 0 einfügt.
Dasselbe gilt für std::string::append
: append(1, ')')
Nun verstehe ich nicht, warum der Compiler sagt, ich konvertiere von char nach const char *.
Der Grund für einen Kompilierungsfehler liegt darin, dass für die Argumente, die Sie an die Methode übergeben, keine Überladung vorliegt. Der Compiler versucht, die beste Übereinstimmung zu finden, in Ihrem Fall char
und const char*
, und meldet dann diesen Fehler.
Bitte helfen Sie mir.
Es gibt 8 Überladungen für std :: string :: insert und 6 Überladungen für std :: string :: append . Sie haben viele verschiedene Optionen wie:
%Vor%oder
%Vor%oder sogar
%Vor%Es gibt viele Möglichkeiten, wählen Sie einfach eine, die Sie für Ihre Situation am besten lesbar oder geeignet finden.