Robert Bienert: String concat in c++

Beitrag lesen

Moin Peter!

[…] Ich will einen Dateinamen zusammensetzen aus ein paa variablen, also aus char* und aus ein paar int-werten. So einfach geht das ja nun leider nicht, wie ich gemerkt habe. Der + operator funktioniert nicht für char,

Doch, er addiert die Werte der beiden Zeichen, aber er macht nicht zwei Zeichen daraus.

strcat funktioniert nicht für char pointer

Sollte es aber.

und int werte lassen sie eh nicht in char* casten wie es mir vorkommt...kann mir jemand helfen ?

Die Lösung deines Problemes heißt std::stringstream. Diese Dinger lassen sich wie ganz normale Ein-/Ausgabe-Streams verwenden, sind allerdings mit std::string gekoppelt. Bsp.:

  
#include <sstream>  
#include <string>  
#include <iostream>  
  
char name[] = "Peter";  
int i = 23;  
double pi = 3.;  
std::stringstream sstr;  
  
sstr << "Hallo " << name << " der " << i << "te, PI=" << pi;  
  
std::cout << sstr.str() << '\n';  
// str() gibt den Inhalt des Streams als std::string zurück  
// obiges gibt folgendes aus:  
// "Hallo Peter der 23te, PI=3."  

Viele Grüße,
Robert