Gast
#85977
Hallo, ich möchte einen int-Wert in einen String umwandeln, was ist hier
falsch?
int wert;
char string[]={};
wert = 345;
itoa(wert,string,10);
Bitte um schnelle Hilfe, Danke im Voraus!
|
Anzeige
|
Umwandlung int in string
Gast
#85977
Hallo, ich möchte einen int-Wert in einen String umwandeln, was ist hier
falsch?
int wert;
char string[]={};
wert = 345;
itoa(wert,string,10);
Bitte um schnelle Hilfe, Danke im Voraus!
Gast
#85978
Hi! Du musst Speicher für den Buffer (in Deinem Fall string) bereitstellen, und zwar soviel, dass der konvertierte Wert darin Platz hat. Bei itoa muss der Benutzer dafür sorgen, dass der Buffer ausreichend groß ist. Also etwa: int wert = 345; char string[4]; itoa(wert,string,10); Das sollte dann klappen (ohne es jetzt ausprobiert zu haben). Bye Daniel Jelkmann "Das sollte dann klappen" Nein, es müssen 7 Bytes sein. Peter
Gast
#85980
Hi Peter, erklär mal bitte warum das 7 Bytes sein sollen... Soweit ich weiss muss der Buffer nur ausreichend groß sein, dass der konvertierte String da hineinpasst. Das wären für mich die drei Zeichen '3', '4', '5' und das Nullzeichen am Ende '\0'... MfG Daniel Jelkmann
Gast
#85981
Danke, jetzt hat es geklappt! @Daniel Er wird ja wohl nicht nur "345" ausgeben wollen, sonst hätte ers ja direkt in den String schreiben können. Und die größte mögliche Zahl (int) ist: "-32768" + 0-Byte = 7 Bytes. Peter
Gast
#85983
@Peter: Das macht natürlich Sinn ;) Soweit hatte ich garnicht gedacht, ich hab nur diesen konkreten Fall gesehen... boing Danke. Aber streng genommen kann ein int ja auch 32 Bit haben, es ist ja nichts über die Maschine gesagt für die das kompiliert wird. Ja ich weiss, ziemlich unwahrscheinlich hier in einem µC-Forum... MfG Daniel Jelkmann Antwort schreiben |
Anzeige
|