C char array Manipulation für atoi

Gast #5117168
Hallo,

ich bekomme über Serial periodisch eine Char Array mit unterschiedlicher 
Länge.

Zum Beispiel: "-123" oder "34345".

Diese Zahl speichere ich in einer Char Array mit einer festen Länge.
1
char ch[10];

Ich möchte die Länge der Char Array bei der Laufzeit nicht ändern. Daher 
wird es fest initialisiert.

Nun frage ich mich wie wandle ich sie in Integer mittels atoi um?

atoi gibt mir immer 0 zurück, wenn die char Länge nicht mit der 
tatsächlichen empfangen char übereinstimmt.

Vielen Dank im Voraus.
Beitrag #5117199 wurde von einem Moderator gelöscht.
Gast #5117659
Dein Problem ist nur die Folge eines früheren Fehlers.

Strings sind immer null terminiert. Wenn du das abschließende null 
Zeichen nicht mit ins Array geschrieben hast, hast du schon im Vorfeld 
den String kaputt gemacht.

> wenn ich den Inhalt von ch alles mit Integer 0 fülle

Sicher funktioniert das als Workaround, aber es ist keine saubere 
Lösung. Würdest du das auch mit Strings machen, die mehrere Megabytes 
lang werden dürfen? Sicher nicht.

Jede Funktion, die Strings verarbeitet, schließt entweder auch das 
terminierende null Zeichen ein oder liefert die Länge des Strings. Diese 
Längenangabe kann man verwenden, um gezielt ein einziges null an die 
richtige Stelle zu schreiben.

> Was ist denn so schwer an Ctrl-V, Ctrl-C?

Das ist bestimmt wieder ganz geheim. Ich musste letzte Jahr mal eine 
Geheimhaltungsklausel erenut unterschrieben, weil es dem Auftraggeber 
super wichtig war, daß das 400 Byte kleine Programm niemand zu sehen 
bekommt. So ein Bohei, als ob man damit die Welt erobern könnte.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.