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?
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
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.
Sorry, natürlich char str[100]; sprintf (str, "%d", i); ich bin so CString versaut ^^
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.
> 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.
Ähm, sprintf geht zwar, produziert aber recht viel Overhead. Für etwas so triviales nimmt man lieber itoa()
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"?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.