Arduino IDE String kopieren Problem

OP #5626183
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.
#5626189
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
OP #5626191
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.
Angehängte Dateien:
#5626232
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
Gast #5626286
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]

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.