Eine Zahl an einen String hängen
-
Hallo !
Wie ist es möglich eine Zahl, die in einer Variablen steht, an einen String zuhängen. So in etwa ...
short a = 4; char *sString; // Code ... sString = new char[23]; // Code .. strcat(sString, (char *) a);
... sieht mein Code zur Zeit aus. Doch leider funktioniert das nich. Wie kann ich die Zahl, die im Datentyp short (a) steht an den String hängen ???
P.S.: Es ist 100% genug Speicher für den String reserviert.
Die Zahl ist max. 2 Stellen lang -> 0 bis 20
-
Hier ein Beispiel
int x=1; string m= "test"; string y = ""; stringstream stream; string str = ""; stream.str(""); stream.clear(); stream << x; str = stream.str(); y = m + str;
Im ergebnis hast du den string "test1"
-
@luiggi
Ich wollte eigentlich eine Lösung mit dem Datentyp char als C-String.
Da ich nicht mit der Klasse String arbeite. (In diesem Fall)Habe mich aber dennoch für das C++ Forum entschieden, da ich new anstatt malloc verwende und imho der Thread hierher gehört.
-
#include <cstdio> using namespace std; char temp[15]; sprintf(temp, "%d", zahl); strcat(mystring, temp);
-
Meine erste Idee (auch wenn die vielleicht ein bisschen dreckig aussieht):
sprintf(sString + strlen(sString), "%d", a);
-
besser als meine
-
0xdeadbeef schrieb:
Meine erste Idee (auch wenn die vielleicht ein bisschen dreckig aussieht):
Funktioniert aber wunderbar. Danke schön.
Gibt es vielleicht dennoch etwas eleganteres ?
-
Elegant wäre, std::string zu benutzen.
-
Im Gegensatz zu Bashar, das ist würdig im Buch "Obsfuscated C and other mysteries" aufgenommen zu werden.
oder
jetzt verstehe ich warum manche Leute sagen C ist kryptisch.