Arduino und Strings - besser ein char[]

Ich hab mir die letzten Tage meine letzten Haare ausgerissen, weil ich meinen String nicht auf "null" setzen konnte. Das war sehr nervig. Selbst die String.remove(0) Methode hat in Arduino nicht wirklich geholfen.
Aber nun hab ich die ultimative Methode gefunden:

char[4] = key_eingabe;
String key_eingabestr = String(atoi(key_eingabe));

Zuerst speicher ich mir alle Key Eingabe in das key_eingabe Array. Danach wandle ich das gesamte Array in einen Integer "atoi()" und danach in einen String "String()". Damit stelle ich sicher, dass ich nur den Inhalt vom Char Array im String habe und keine anderen Zeichen. Beim direkten Wandeln mit "String()" werden auch EOL Zeichen eingefügt, die ich eher nicht brauchen kann. :)

Weiterführend kann man sagen: Strings und Arduino ist eher keine gute Idee.

Arduino 1.0.6 hat bessere String Funktionen als 1.0.5

Wenn ich hier über Arduino schreibe und darüber, dass ich immer noch Arduino in der 1.0.x Version nutze, komm ich mir vor wie "Opa erzählt vom Krieg". :)
Der einzige Grund warum ich immer noch die 1.0.5 Version lange Zeit verwendet habe, war die Tatsache, dass ich vor zwei Jahren mit dem GSM Modul angefangen habe zu experimentieren und dieses im Zusammenspiel mit der Keypad Library in der Version 1.0.6 gegeben hat. Deshalb hab ich dann auch alle meine anderen Programmierungen fürs Baumhaus Schloss auf der Version 1.0.5 gemacht.
Damit hat es ja eigentlich auch ganz gut funktioniert. Nun komm ich aber an den Punkt, indem ich immer wieder auch einen String zurücksetzen muss. Das typische

key_eingabe = "";

funktioniert leider nicht richtig und die remove Funktion aus dem String Objekt kam dann erst in einem Backport aus 1.5.x in die Version 1.0.6 (Releasenotes) rein.
Da ich sowieso nach meinen erfolglosen Anfangsversuchen (damals hatte ich noch nicht die Polling Idee zur Abfrage des Keypads und SMS Eingang) nicht mehr das GSM Modul verwende, hab ich nun wieder auf die Version 1.0.6 gewechselt und freu mich, dass ich nun doch wieder die besseren String Funktionen nutzen kann.

Generell ist es sowieso meistens ratsam immer die aktuellsten Versionen zu verwenden. Die sind einfach ausgereifter und haben oftmals auch mehr Funktionen zur Verfügung. Für Arduino UNO reicht aber trotzdem noch die 1.0.6, außerdem findet man für diese Version auch meistens mehr alte Libraries. :) Die Oberfläche ist mir trotzdem weiterhin egal, da ich nach wie vor das alte Stino Plugin für Sublime Text 2 verwende.
Wem sein Code mit der Zeit zu groß wird, kann ihn auch einfach in mehrere Dateien aufteilen. Ich hab dazu als Hauptdatei die .ino Datei und in weitere .h Headerdateien meine anderen Funktionen eingebaut. Natürlich sind Header Dateien eigentlich der falsche Weg. Aber das ging am einfachsten für mich. So hat die einzelne Datei dann keine 200 Zeilen mehr, sondern nur noch 100 Zeilen Code und es ist etwas strukturierter. Wer es richtig machen will, hätte vermutlich eine .ino Datei und für weitere logisch zusammengehörende Funktionen eine .h und eine .cpp Datei erstellt. Aber Warum alle Funktionen nochmal ausgliedern, wenn ich sie auch direkt in der .h Datei beschreiben kann? Ich hoffe einfach mal, dass meinen Code nie jemand findet und nutzen muss.