INT TO STRING, wie?
-
Hallo Leute.
Ich habe folgendes Problem, ich habe momentan folgenden Code-schnipsel:string H = "h"; // Buchstabe h. string NR = Groesse; // Eine Zahl soll in einen string Kovertiert werden. string TAG = H+NR; // Ergebnis sollte z.b "h1" sein, wenn Groesse 1 ist.Wie soll ich da vorgehen?
Mfg Wikinger75!
-
Wirf mal einen Blick in die FAQ

-
Bin da auf
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html gestoßen, danke^^, hab da reingekuckt, aber das ist mir net aufgefallen (
)
-
Na durch string-streams. Ist zwar etwas unpraktisch, aber man kann sich eine funktion schreiben.
std::string IntToString(int z) { std::ostringstream out; out << z; return out.str(); }Gruss
Cartman
-
string H = "h"; // Buchstabe h. string NR = Groesse; // Eine Zahl soll in einen string Kovertiert werden. string TAG = H+NR; // Ergebnis sollte z.b "h1" sein, wenn Groesse 1 ist. if (Groesse==1) TAG="h1";
-
Benutzernamen ein. schrieb:
string H = "h"; // Buchstabe h. string NR = Groesse; // Eine Zahl soll in einen string Kovertiert werden. string TAG = H+NR; // Ergebnis sollte z.b "h1" sein, wenn Groesse 1 ist. if (Groesse==1) TAG="h1";lol
Witzbold
-
ROFL, aber voll

Soll man etwas bis 1000 , 1000 ifs schreiben... xD@Eric Cartman
Danke für die lösung, doch ich kapier net warum das so komplex ist^^
-
Was ich auch nicht verstehe ist das hier:
std::string IntToString(int z) { std::ostringstream out; out << z; // Diese Zeile... return out.str(); }wird das etwa nicht auf dem bildschirm ausgegeben oder reagiert das anders als ostream?
-
@Wikiger
Nein ueberhaupt nicht. Du kannst in ostringstream alles reintun, was du willst afaik. z.B.:int i = 6; double d = 3.89; char c = 'f'; out << i << d << c;Muesste dann "63.89f" als string liefern...
Umgekehrt laeuft das ganze so ab:
// String zu Zahl std::string s = "3"; int zahl; istringstream inp; inp.str(s); inp >> zahl;Gruss
Cartman
-
ahso Danke^^
-
Ein
std::ostringstreamschreibt alles, was man ihm über den Streamoperator '<<' gibt, intern in einenstd::string. Das ist also sowas wie einstd::string-Builder.
Das ist übrigens so kompliziert, weil man dank des Streams noch viele weitere Möglichkeiten hat, um die Konvertierung zu beeinflussen mit entsprechenden Locales, Facets, Code Conversions und Manipulatoren.Man hat allerdings bereits schon länger gemerkt, dass man oft nur eine Konvertierung braucht und nicht diese riesige Funktionalität. Deshalb kommen mit dem nächsten Standard einfachere Funktionen, welche dieses Vorgehen kapseln.
Falls du Boost hast, gibt es dort schon so eine Funktion, welche sich
boost::lexical_castnennt:
http://www.boost.org/doc/libs/1_38_0/libs/conversion/lexical_cast.htmGrüssli