Zitat Zitat von Moppi Beitrag anzeigen
Der eigentliche Grund dafür:

mit ist noch unklar, wie ich in C++ einen String, Typs "String" in ein String, Typs "char" umwandle.
Und ob das überhaupt geht.

Müsste aber, habe was dazu gefunden: https://www.arduino.cc/reference/en/...s/tochararray/
Allerdings wird da der gesamte String als Kopie im Speicher abgelegt. Vermutlich passiert das Kopieren zur Laufzeit.
Das ist weniger gefällig.


MfG


ja, du brauchst hier immer 2 verschiedene Variablen, da beide unabhängige Datentypen sind und nichts miteinander zu tun haben:

einen cstring von passender Größe

char cbuf[100];

und einen
String mString;

du kannst jetzt den Inhalt von String mString auf char cbuf[] kopieren:

mString.toCharArray(cbuf, 100);

Ist die Länge von mString kürzer als die vom cstring, wird in cstring hinter das letzte mString-Zeichen eine Null '\0' gesetzt (ich weiß allerdings jetzt grade nicht, ob der Rest ebenfalls mit '\0' aufgefüllt wird oder undefiniert bleibt).

- - - Aktualisiert - - -

PS,
es gbt noch eine 2. String-Methode, die einen Pointer auf den "reinen cstring-Inhalt" von String zurückliefert:

mString.c_str()

Ich habe das noch nicht benutzt, aber ich verstehe das so, dass du dann (z.B. für temporäre Zwecke) keinen extra cstring Buffer brauchst, z.B. direkt zur Verwendung in anderen C Funktionen, so als wäre es bereits selber ein cstring array. Vermutlich arbeitet die Methode genau wie beim großen Bruder, der C++ std::string class:
http://www.cplusplus.com/reference/string/string/c_str/