Beim Lesen / Ausprobieren einer aktuellen Antwort war ich überrascht zu sehen, dass die String
Klasse von Arduino die c_str()
Methode unterstützt , genau wie die C ++ - std::string
Klasse. Wie erwartet scheint es einen Zeiger auf den Inhalt der Zeichenfolge als nullterminiertes char
Array (dh Zeichenfolge im C-Stil) zu erhalten.
Soweit ich sehen kann, wird diese Methode jedoch in der offiziellen Arduino-Dokumentation nicht erwähnt. Außerdem String
scheint in allen Beispielcodes, die ich verwendet habe , ein anderer Ansatz verwendet zu werden. Ein sekundärer char
Puffer wird eingerichtet, und dann wird der Inhalt der Zeichenfolge mit kopiert String::toCharArray()
. Dies erfordert offensichtlich den doppelten Speicher sowie eine O (n) -Kopieroperation.
Es scheint, c_str()
sollte der bevorzugte Ansatz sein. Gibt es einen Grund, warum toCharArray()
es häufiger verwendet wird?