2017-10-27 2 views
0

Ich beziehe mich auf diesen Beitrag zum Erstellen einer Zeichenfolge aus einem Zeichen in cpp.cpp Deklaration von Zeichenfolge mit einem char

Convert a single character to a string?

c eine charactor und InputStr ist ein Vektor von Strings. Wie gesagt, wenn ich dies tun

string str2(1,c); 
inputstr.push_back(str2); 

es funktioniert und inputstr ein str bis zum Ende wird hängen, aber nicht, wenn ich

tun
inputstr.push_back(string str2(1,c)); 

ein Fehler wirft: erwartete Primärausdruck vor ‚strx ' inputstr.push_back (Zeichenfolge strx (1, c)); Was bedeutet der Fehler? Weil cpp keine Liniendeklaration unterstützt, würde ich in diesem Fall einen anderen Fehler erwarten.

+1

Sie möchten 'inputstr.push_back (string (1, c));'. – songyuanyao

+1

Der Fehler bedeutet, dass dies nicht C++ gültig ist. –

Antwort

2

Aber

inputstr.push_back(string(1, c)); 

funktionieren sollte.

In Ihrem Beispiel versuchen Sie, eine Variable an einem ungültigen Ort zu deklarieren, und das ist kein gültiger Code, daher schlägt die Kompilierung fehl. In diesem Beispiel instanziieren Sie einfach ein string Objekt und übergeben die Instanz an push_back(). Sie brauchen die Variable in diesem Fall nicht.

Verwandte Themen