C++ Zeichenketten verketten

Zhen

Lt. Junior Grade
Registriert
Aug. 2009
Beiträge
299
Hallo CBler,
frische derzeit meine C++ Kenntnisse wieder etwas auf und bin dabei auf ein kleines Problem gestossen.

Wie kann man Zeichenketten miteinander verketten? Der Compiler spuckt mir bei folgenden Varianten nämlich immer einen Fehler aus:

PHP:
int num = 1;

// Compiler Fehler: Zwei Zeiger können nicht addiert werden.
char* test1 = "Mein Text Nummer " + num + " will nicht...";

// Compiler Fehler: Zwei Zeiger können nicht addiert werden.
char test2[] = "Mein Text Nummer " + num + " will nicht...";

Mehr Varianten dieser Schreibweise fallen mir aber auch nicht mehr ein...

Hat jemand eine Idee wie ich so einen String (bei dem irgendwo eine Variable eingefügt ist) in einer Variable speichern oder einer Funktion übergeben kann?

Danke schon mal im Vorraus :D
 
Zuletzt bearbeitet:
strcpy, strcat für chars.

+ funktioniert nur bei std::string u.ä.
 
Du verwendest nur die allergrundlegendsten Datentypen: Zeiger und Zahl. Diese bieten keine eingebaute Zahl zu String Konvertierung.

Dazu brauchst du entweder:
1) C Hilfsfunktionen wie sprintf/strcat/... + new/malloc/stack für die Speicherverwaltung
2) C++ string Klasse
3) C++ string Streams
4) du schreibst die speicherallokation und zahlenkonvertierung von hand
 
Zuletzt bearbeitet:
Du arbeitest dort mit primitiven Datentypen, und nicht mit Zeichenketten die per Objekt gekapselt sind. Somit musst du manuell per strcyp strcat die Zeichenketten von einer Position and die andere kopieren, und dich selbst um den Speicher kümmern...

Gerade wenn es dir um C++ geht, solltest du sowas aber komplett lassen und lieber den Stl String oder ähnliches verwendent. So wie du es machst programmiert man eigentlich ANSI C
 
Zuletzt bearbeitet:
Also ich würde das nicht auffrischen nennen. Du scheinst eher gar keine C/C++ Kenntnisse zu haben.

Erstmal ist das C Code und in C kann man Zeichenketten nicht durch + verketten.
Du scheinst nicht mal das Speichermanagement verstanden zu haben, ohne das sehe ich absolut keine Chance, dass du es hinbekommen wirst. Du musst also erstmal mit den Basics anfangen.
Was ist int, was ist char und wie wird der Speicher benutzt!
 
@GrinderFX:
doch ich hab schon Kenntnisse in C++ (wenn auch keine tiefergehenden), aber ich hab jetzt Jahre in C# programmiert... da sind es ja alles Objekte und es ging mit dieser Schreibweise dann auch ganz einfach :D :D

Danke aber für die Auskunft, bin wieder etwas schlauer geworden :D :P
 
Zuletzt bearbeitet:
Naja aber das ist so die Basis überhaupt, da kann man also nicht von Kenntnissen sprechen.
 
Zuletzt bearbeitet:
Mein Tipp (Schuss aus der Hüfte) wäre ein stringstream, wo man das alles reinstreamt und sich mit str() den zugrundeliegenden String rausholt.

Code:
#include <sstream>
#include <string>

...
int num = 1;
std::stringstream testStream;
testStream << "Testtext " << num << " noch mehr Text";
std::string testString = testStream.str();
...

ist wie geschrieben nurn grober Einfall, scheint mir aber ziemlich geradlinig und C++.
 
Zurück
Oben