www.mikrocontroller.net

Forum: Compiler & IDEs itoa als intelligente Umwandlung


Autor: Stefen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich übergebe eine Integervariable und möchte diese in eine 5 Char-Byte 
große Variable speichern
Dies so wie folgte aussehen:
Übergabe von der Integervariable wert: 220
soll wie folgt in ein char-Array cwert[6] gespeichert werden:
00220

Wenn ich
itoa(wert,cwert)
nutze, steht mein Ergebnis je vorne in dem Array 220\0

Mir fällt nun nur noch ein die Fkt strlen zu nutzen und mit einer 
zusätzlichen Hilfsvariable zu arbeiten.

Dies ist aber ziemlich umständlich. Gibt es hier ein schnellere Lösung?!

Autor: Chris R. (hownottobeseen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

schnapp dir doch einfach den Quellcode von itoa und schreibe ihn für 
deine Bedürfnisse um:

http://en.wikipedia.org/wiki/Itoa

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprintf(buffer, "%05i", i) regelt.

HTH

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefen schrieb:

> Dies ist aber ziemlich umständlich. Gibt es hier ein schnellere Lösung?!

Das hast du schneller selbst geschrieben, als dass du da versuchst im 
nachhinein den String von itoa anzupassen.
void myFormat( unsigned int value, char* ascii )
{
  uint8_t i;

  i = 5;
  while( i > 0 ) {
    --i;
    ascii[i] = ( value % 10 ) + '0';
    value = value / 10;
  }

  ascii[5] = '\0';
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.