Hallo, ich habe ein kleines Problem, das für mich leider ziemlich unlogisch ist. Ich habe in der Arduino IDE in meinem Programmcode einen String, welchen ich auf 2 weitere Strings kopieren möchte, da ich mit diesen dann unterschiedlich weiterarbeiten möchte. Leider überträgt er immer nur auf den ersten String: Beispiel zum Verständnis: String Var1 = "Test"; String Var2; String Var3; Var2 = Var1; Var3 = Var1; Dabei kommt heraus: Var2 = "Test"; Var3 = ""; Wieso überträgt er bei diesem einfachen Beispiel Var1 nicht auf Var3? Danke für eure Antworten.
Hallo, ich sehe keinen Gund für solch ein Verhalten, würde mich also wundern. Allerdings habe ich auch keine Lust, einen compilierbaren Testsketch zu schreiben und das Problem nachstellen zu können... Gruß aus Berlin Michael
Ok, wenn ich nur dieses Beispiel in der Arduino IDE erstelle, dann funktioniert alles. Im Anhang findet ihr einen Screenshot von diesem Codeausschnitt. Dabei lese ich eine SMS von meinem GSM Modul aus. str_Antwort ist die komplette Nachricht. In diesem Fall kommt heraus: str_Wartezeit = str_Antwort str_Tel1 = "" Wenn ich die beiden vertausche, dann ist das Ergebnis auch vertauscht.
Daniel E. schrieb: > Im Anhang findet ihr einen Screenshot von diesem Codeausschnitt. Und wie soll das jetzt jemand bei sich compilieren?
Forist schrieb: > Und wie soll das jetzt jemand bei sich compilieren? Kompilieren funktioniert ohne Probleme. Ich dachte vielleicht kennt jemand das Problem bei Strings.
Hallo, Daniel E. schrieb: > Forist schrieb: >> Und wie soll das jetzt jemand bei sich compilieren? > > Kompilieren funktioniert ohne Probleme. bei mir nicht, die IDE will Dein Bild einfach nicht laden... Ich bezweifle auch, das sich das bei Dir so compilieren läßt. Ansonsten: ich kenne kein Problem mit Strings, außer vielleicht Speichermangel auf kleinen AVR. Ich beutze die Stringklasse gern und häufig auf den ESP und bisher hat die immer gemacht, was sie sollte. Gruß aus Berlin Michael
Du kopierst Pointer, keine Strings. In C sieht das in etwa so aus: Die Variablen - die den String aufnehmen - sind als char-Arrays angelegt. [/C] #include <string.h> ... char var1[16] = "Test"; char var2[16]; char var3[16]; strcpy(var2, var1); strcpy(var3, var1); ... [/C]
Jade schrieb: > Du kopierst Pointer, keine Strings. Nein. Das ist kein C, das ist C++, und die Klasse String versteht sehr wohl mit dem Zuweisungsoperator umzugehen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.