Forum: Mikrocontroller und Digitale Elektronik Arduino IDE String kopieren Problem


von Daniel E. (danebn)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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

von Daniel E. (danebn)


Angehängte Dateien:

Lesenswert?

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.

von Forist (Gast)


Lesenswert?

Daniel E. schrieb:
> Im Anhang findet ihr einen Screenshot von diesem Codeausschnitt.

Und wie soll das jetzt jemand bei sich compilieren?

von Daniel E. (danebn)


Lesenswert?

Forist schrieb:
> Und wie soll das jetzt jemand bei sich compilieren?

Kompilieren funktioniert ohne Probleme.

Ich dachte vielleicht kennt jemand das Problem bei Strings.

von Michael U. (amiga)


Lesenswert?

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

von Jade (Gast)


Lesenswert?

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]

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.