Archiv verlassen und diese Seite im Standarddesign anzeigen : Int in String umwandeln
The_Akki
16-01-2006, 16:39
Hallo Leutz!
Wie kann ich ein Interger in ein String umwandeln?
itoa -> integer to ascii
Gefunden im Netz:
/**
* C++ version std::string style "itoa":
*/
std::string itoa(int value, unsigned int base) {
const char digitMap[] = "0123456789abcdef";
std::string buf;
// Guard:
if (base == 0 || base > 16) {
// Error: may add more trace/log output here
return buf;
}
// Take care of negative int:
std::string sign;
int _value = value;
// Check for case when input is zero:
if (_value == 0) return "0";
if (value < 0) {
_value = -value;
sign = "-";
}
// Translating number to string with base:
for (int i = 30; _value && i ; --i) {
buf = digitMap[ _value % base ] + buf;
_value /= base;
}
return sign.append(buf);
}
The_Akki
16-01-2006, 19:23
Funktioniert dies auch unter C? Hab das vergessen dazu zuschreiben.
Was bedeuten die 2 Doppelpunkte (::) ?
Sonst schon mal Danke!
BLUESCREEN3D
16-01-2006, 19:53
Das könntest du z.B. mit snprintf() machen:
int zahl=123;
char text[12]; //12 Byte ist nur korrekt, wenn sizeof(int)==4
snprintf(text,12,"%d",zahl);
@Boron: Unter C++ ist es einfacher und bequemer, mit sstreams zu arbeiten.
@Joghurt
Da merkst du mal wie lange ich nix mehr mit C++ gemacht habe :).
Die nette Funktion habe ich halt im Netz geklaut und nicht getestet.
#include <sstream>
int a = 1337;
std::ostringstream buf;
buf << a;
std::string b = buf.str();
Der Vollständigkeit halber :)
MfG
BLUESCREEN3D
17-01-2006, 17:59
#include <sstream>
int a = 1337;
std::ostringstream buf;
buf << a;
std::string b = buf.str();
Geht das eigentlich auch irgendwie ohne den Umweg über ostringstream?
Geht das eigentlich auch irgendwie ohne den Umweg über ostringstream?
boost hat ein lexical_cast<T>:
http://www.boost.org/libs/conversion/lexical_cast.htm
Aber das ist nicht nur C++, das braucht ebenauchnoch die zusäzliche boost lib.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.