Forum: Compiler & IDEs int to string


von bst (Gast)


Lesenswert?

Ich habe z.B. ein char vorliegen, das den Wert 32 enthält.
Wie kann ich daraus einen string erhalten, der '3' und '2' enthält?

von markus (Gast)


Lesenswert?

welche programmierspache?

von Noonien (Gast)


Lesenswert?

Wenn C oder C++ dann:

int i = 100;
char* str = Printf("%d", i) //"%d" steht für die variable es ist auch 
"nummer: %d" und so weiter möglich

von bst (Gast)


Lesenswert?

Das heißt, ich könnte auch sprintf(str, "%d", i) verwenden?
Ich bin mir jetzt nicht sicher, ob es den Zahlenwert (32) nimmt, oder 
das ASCII-Zeichen hinter dem sich 32 verbirgt.

von Noonien (Gast)


Lesenswert?

Sorry, natürlich

char str[100];
sprintf (str, "%d", i);

ich bin so CString versaut ^^

von Noonien (Gast)


Lesenswert?

Der formatiert die Variablen in normale ascii zeichen... also wird die 
int variable {32} zu "32"

es gibt auch andere zeichen anstatt "%d" (für ganze zahlen)... zB "%f" 
für nachkommazahlen.

von johnny.m (Gast)


Lesenswert?

> Der formatiert die Variablen in normale ascii zeichen... also wird die
> int variable {32} zu "32"
...wobei darauf zu achten ist, dass zu einem ASCII-String grundsätzlich 
noch der Nullterminator am Ende gehört, der von allen Funktionen, die 
eine Konvertierung in ASCII durchführen (also die printf-Derivate aus 
der stdio.h und die stdlib.h-Funktionen itoa, dtostrf, dtostre,...) 
erzeugt und auch gespeichert wird! Deshalb muss das Array, in dem man 
den String ablegt, mindestens eine Stelle mehr haben, als man maximal 
ausgeben will, sonst läufts über.

von Daniel M. (usul27)


Lesenswert?

Ähm, sprintf geht zwar, produziert aber recht viel Overhead. Für etwas 
so triviales nimmt man lieber itoa()

von bst (Gast)


Lesenswert?

Wie wird der String eigentlich von sprintf in den Buffer (str) 
geschrieben?

Bsp.:
char str[25];
sprintf(str, "%d", 123);

Steht dann an Arrayindex 24 die "1", an Index 23 die "2", an Index 22 
die "3" und an Index 21 das "\0"?

von Daniel M. (usul27)


Lesenswert?

Wieso sollte er das Array von hinten auffüllen (mal abgesehen davon, 
dass sprintf nicht mal weiss, wie gross das Array ist). Der String wird 
natürlich von unten (also ab str[0]) gefüllt.

von bst (Gast)


Lesenswert?

Stimmt, es steht also genau umgekehrt im Array schäm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.