Forum: Mikrocontroller und Digitale Elektronik sprintf()


von tobias hofer (Gast)


Lesenswert?

hallo

ich möchte eine int zahl in einen string konvertieren.
dazu möchte ich die sprintf() fkt. verwenden.

kann mir vieleicht jemand ein kleines c-beispiel geben wie ich das 
programieren kann?

besten dank tobias

von Olaf (Gast)


Lesenswert?

Hi Tobias,

warum möchtest du unbedingt die Funktion sprintf() benutzen? Einfacher 
geht es mit itoa().

Gruß
Olaf

von tobias hofer (Gast)


Lesenswert?

ich weiss itoa() wäre einfacher.

mein compiler hat aber diese fkt. noch nicht implementiert.
eben nur sprintf(),leider...
aber mit dieser fkt. sollte das nun ja wohl auch gehen.

von Olaf (Gast)


Lesenswert?

Hi Tobias,

sprintf() arbeitet im Prinzip genau wie printf(), nur dass du noch einen 
zusätzlichen Buffer angibst, in den der String kopiert werden soll.

...
char buf[80];
int  zahl = 1234
...
   sprintf(buf, "Die konvertierte Zahl ist: %d", zahl);
oder:
   sprintf(buf, "%d", zahl);
...

Außerdem gibt die Funktion einen Rückgabewert zurück, in dem die Anzahl 
der Zeichen steht, die in den Buffer kopiert wurden.

Gruß,
Olaf

von tobias hofer (Gast)


Lesenswert?

hi olaf

danke!
für was steht eigentlich das "%d"?

gruss
tobias

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

d wie dezimal. Rat mal was bei h oder o rauskommt ;-)

von Olaf (Gast)


Lesenswert?

@Andreas
Was willst du Tobi damit sagen? Das mit %h vielleicht die Zahl als Hex 
ausgegeben wird? Das ist leider falsch.

%s -> string
%d oder %i -> integer
%u -> unsigned int
%x oder %X -> HEX
%o -> vorzeichenloser Integer oktal
%f -> float
%e oder %E -> Gleitkommazahl "Mantisse E Exponent"
u. a.

Olaf

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Mift, war ein blödes Beispiel. H gibt's bei sprintf natürlich nicht, 
sorry falls ich Verwirrung gestiftet habe.

von tobias hofer (Gast)


Lesenswert?

hat bestens geklappt.
das programm funktioniert bestens.

danke nochmals
gruss tobias

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.