C ++: Wie man Strings / char * erstellt

7

Ich bin neu in C ++. Ich möchte ein char* machen, aber ich weiß nicht wie.
In Java ist es nur das:

%Vor%

Wie kann ich das tun? Ich brauche ein char* .

Ich konzentriere mich darauf, die Ganzzahl nach der Zeichenfolge einzufügen.

    
Martijn Courteaux 18.02.2010, 13:45
quelle

6 Antworten

27

Sie wollen fast sicher nicht mit char * umgehen, wenn Sie es helfen können - Sie brauchen die C ++ std :: string Klasse:

%Vor%

oder die zugehörige Stringstream-Klasse:

%Vor%

Wenn Sie wirklich einen Zeichenzeiger brauchen (und Sie haben nicht gesagt, warum Sie das denken), können Sie einen aus einer Zeichenkette mit der Memberfunktion c_str () erhalten.

All dies sollte in einem einführenden C ++ - Lehrbuch behandelt werden. Wenn Sie noch keins gekauft haben, erhalten Sie Accelerated C ++ . Sie können C ++ nicht nur aus Internetressourcen lernen.

    
anon 18.02.2010, 13:53
quelle
7

Wenn Sie mit C ++ arbeiten, verwenden Sie einfach std::string . Wenn Sie mit char* arbeiten, möchten Sie wahrscheinlich direkt mit C arbeiten. Im Fall von C können Sie die Funktion sprintf verwenden:

%Vor%     
Rupert Jones 18.02.2010 13:53
quelle
2

Rufen Sie einfach s.c_str( ); . Hier können Sie mehr sehen.

PS. Sie können strcpy verwenden, um den Inhalt in eine neue Variable zu kopieren, und dann können Sie sie ändern.

    
Artem Barger 18.02.2010 13:47
quelle
0

char * bedeutet "Zeiger auf ein Zeichen".

Sie können einen Zeiger auf eine 'Zeichenfolge' wie folgt erstellen:

%Vor%

Alternativ können Sie std :: string:

verwenden %Vor%

Beachten Sie die Konstante am Anfang des letzten Beispiels. Das bedeutet, dass Sie die angezeigten Zeichen nicht ändern können. Sie können das gleiche mit dem ersten Beispiel tun:

%Vor%     
Seb Rose 18.02.2010 13:49
quelle
0

Erwägen Sie die Verwendung von stringstreams:

%Vor%     
IVlad 18.02.2010 13:51
quelle
0

Es wäre wahrscheinlich am besten gewesen, wenn C ++ den Operator "+" wie Sie es angezeigt hätte, überlastet hätte. Leider haben sie das nicht getan (das kannst du aber, wenn du willst).

Es gibt grundsätzlich drei Methoden, um Integer-Variablen in C ++ in Strings umzuwandeln; zwei von C geerbt und eine neue für C ++.

  1. Die itoa () Routine. Das ist eigentlich kein Standard, aber die meisten Compiler haben es. Das Schöne daran ist, dass es einen Zeiger auf die Zeichenkette zurückgibt, so dass es in der funktionalen Programmierung verwendet werden kann.
  2. sprintf () . Der zweite Haltepunkt von C, diese Routine nimmt eine Zielzeichenfolge, eine Formatzeichenfolge und eine Liste von Parametern. Wie viele Parameter vorhanden sind und wie sie interpretiert werden, hängt davon ab, wie die Zeichenfolge "format" analysiert wird. Das macht den Sprint sowohl immens kraftvoll als auch immens gefährlich. Wenn Sie diesen Ansatz verwenden, kann ich ziemlich sicher sein, dass Sie bei Ihren ersten Versuchen Absturzfehler haben werden.
  3. std :: ostringstream . Der C ++ Weg. Dies hat so ziemlich die ganze Macht von sprintf (), ist aber viel sicherer. Der Nachteil hier ist, dass Sie es deklarieren müssen, und es ist nicht eine Zeichenfolge, so dass Sie es immer noch in eine konvertieren müssen, wenn Sie fertig sind. Das bedeutet, dass mindestens drei Zeilen Code benötigt werden, um irgendetwas mit einem ostringstream zu machen. Es ist auch wirklich hässlich, besonders wenn Sie irgendeine spezielle Formatierung versuchen.
T.E.D. 18.02.2010 15:00
quelle

Tags und Links