Serial.Print erwartet (meines Wissen) einen String, also eine /0 terminierte Zeichenkette.
Sollte hier aber nicht Dein Hauptproblem sein.
Meinem Verständnis nach (und der Infos auf dieser Seite): c-howto.de strings-verketten
müsste Dein Code zumindest die passenden 'Zeichen' aus dem Text 'zusammen kleben'.
Gibt es ein Beispiel zu diesen ganzen Funktionen, um Zeichenketten zu manipulieren?
(habe die IDE gerade nicht offen, meine aber ganz oben in den Beispielen stünde auch 'String' - vll. einen Blick wert)
-->Eingabe[] ist 9 Zeichen lang, das Index beginnt also bei 0 und endet bei 8. Eingabe[9] ergibt also irgendeinen zufälligen Inhalt.
Problem 2:
-->Als Quelle wird ein string bzw. ein Zeiger darauf erwartet, Du gibst ihm lediglich ein char.
Problem 3:
-->Dein Programm funktioniert nicht ansatzweise, setz mal eine Ausgabe ins Setup und beobachte die Konsole. Der Controller startet immer wieder neu, was daran liegt:
strcat() sucht im string text nach dem Ende, also \0, aber genau dieses gibt es nicht. Er wühlt also so lange im Speicher rum, bis es kracht.
Uvaginowitsch:
Wieso geht bei mir die strcat Funktion nicht? Muss ich noch etwas beachten`?
Du verwechselst den Inhalt eines Elementes und den Zeiger. Bei strcat ist nur der Zeiger gefragt. Bei char Feldern ist der Feldname auch der Zeiger. Also ist Eingabe[1] der Inhalt, während Eingabe der benötigte Zeiger ist.
Lokale Felder werden nicht automatisch mit Inhalt gefüllt. Der Schrott, der angezeigt wird entspricht dem zufälligen Inhalt des Speichers. Globale Felder werden mit 0 gefüllt.
So geht es mit globalen Feldern:
char text[20];
char zahl[20];
char Eingabe[] = "Abc455955";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
strncat(text, Eingabe, 3);
strcat(zahl, Eingabe + 3);
Serial.println(Eingabe);
Serial.println(text);
Serial.println(zahl);
}
void loop() {}