C ++, ungültige Konvertierung von 'char' in 'const char *'

8

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?

    
Fahad Uddin 11.10.2011, 21:32
quelle

4 Antworten

10

Die Fehlermeldung zeigt Ihnen alles, was Sie wissen müssen - Sie versuchen, einen char -Parameter zu übergeben, für den ein const char * erforderlich ist.

Sie müssen nur ändern:

%Vor%

zu:

%Vor%     
Paul R 11.10.2011, 21:35
quelle
4

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, ')')

    
Nicol Bolas 11.10.2011 21:36
quelle
3
  

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.

    
Marlon 11.10.2011 21:50
quelle
0

Die Version der string :: insert-Funktion, die Sie verwenden, erfordert const char *, das Sie char verwenden "statt '

verwenden

Hier ist ein Link zur Methodendokumentation

Ссылка

    
minus 11.10.2011 21:37
quelle

Tags und Links