• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

C++: Integer -> String

Hallo!

Ich bin ziemlicher C++ Neuling und hab nun folgendes Problem.
Ich arbeite mit Eclipse und hab nun eine Variable, die in einer Schleife hochläuft. Diese Integervariable soll nun an einen String angehängt werden. Nur ich finde nichts wie ich eine Integervariable in einen String umwandeln kann, so das ich ihn nach dem Motto
Code:
s = s + i;
an einen String anhängen kann.

MFG Olti
 
Wenn Du Qt3 einbindest, dann kannst Du das mit der QString Klasse prima lösen:

Code:
#include <qstring.h>

       QString s = "irgendwas";

und

Code:
       s = QString(s +"%1").arg(i);

oder

Code:
       s.append ( QString.setNum( i ) );
 
Code:
char buf[64];
snprintf(buf, sizeof(buf), "%d", s);
strcat(dest, buf);
Das ist nur Beispielcode, in der wirklichen Welt verwendet man snprintf effizienter und wenn schon, dann mit strncat, strlcat oder sonstigem.
 
So, jetzt hab ich das in reinem C:
Code:
#include <stdio.h>
#include <string.h>

int main () 
{
int i;
char astr[64]; /* astr nimmt den Endstring auf, maximal 63 Zeichen + "\0". */
char *bstr="Zahl:"; /* bstr ist Dein Ausgangsstring */
char cstr[10]; /* cstr nimmt Deine Zahl i als String auf. */

for (i=1;i<=100;i++)
{
sprintf(cstr,"%d",i); /* Zahl i nach String cstr übertragen. */
strcpy(astr,bstr); /* String bstr nach String astr kopieren. */
strcat(astr,cstr); /* String cstr String astr anfügen. */
printf("%s\n",astr); /* astr ausgeben. */
}

}

C-Strings sind schon sehr schwer zu handhaben, da man den benötigten Speicher selbst verwalten muß.
Etwas mehr dazu und zu (etwas anderen) C++-Strings auf meiner (unfertigen) Seite

http://www.angelfire.com/linux/tux25/cpp.html

dort unter Punkt 7.

(Ich bin aber kein ausgebildeter Programmierer.)

Beste Wünsche
 
Bzgl. C++-Strings finde ich dieses Dokument noch recht vielversprechend:

http://mia.ece.uic.edu/~papers/intv/pdfgqvaDhcafa.pdf

Leider finde ich "strutils.h" und "genlib.h" nicht auf meinem System. Sonst wäre "IntegerToString" die C++-Lösung.

Nochmal C mit einer Variable weniger:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
int i;
char *b;
char *a;
a=(char *) malloc(64);
b=(char *) malloc(10);
for (i=0;i<=100;i++)
{
strcpy(a,"Zahl:");
sprintf(b, "%d", i);
strcat(a,b);
printf ("%s\n",a);
}
}

Viele Grüße

abgdf

P.S.: Sehr schön auch, was man bei google noch so zum Thema findet: "Strings & String-Tangas" :)
 
In C++ macht man das so:

Code:
int a = 5;
std::stringstream s;
s << a;
std::string str = s.str();

Boost Lexical Cast ist ein einfacher Wrapper um diese Operation.
 
Vielen Dank !
Ich mußte aber noch etwas basteln, um zu verstehen, was Du meinst:

Code:
#include <iostream>
#include <sstream>
#include <string>
int main()
{
int i;
std::string astr;
std::stringstream s;
for (i=0;i<=100;i++)
{
s << i;
astr = "Zahl:"+s.str();
std::cout << astr << std::endl;
s.str ("");
}
}

Viele Grüße
 
Oben