Forum: Mikrocontroller und Digitale Elektronik String verarbeiten


von Tester (Gast)


Lesenswert?

Hallo zusammen

Ich habe ein kleines Problem:
Ich habe ein Programm in C geschrieben. In diesem Programm arbeite ich 
mit Strings.
Ich habe eine globale Variable (char) definiert und in diese Variable 
möchte ich immer wieder andere Strings darin speichern.
Beispiel:
Wird der erste Schalter gedrückt, steht "Mueller" in der Variable.
Wird der zweite Schalter gedrückt, steht "Meier" in der Variable.

Das möchte ich erreichen, doch leider funktioniert es nicht. Weiss 
jemand von euch wie ich das machen könnte?

Besten Dank zum Voraus

von STK500-Besitzer (Gast)


Lesenswert?

Du solltest vielleicht erst mal posten, was du bisher hinbekommen hast.
Alles andere hat was mit Kristallkugeln und solch Humbug zu tun.

von Tester (Gast)


Lesenswert?

Hallo

Habe es so probiert:

char string[32];

/*Taster 1 gedrückt*/
string[] = "Mueller";

/*Taster 2 gedrückt */
string[] = "Meier";


Aber das funktioniert irgendwie nicht.

Weiss jemand wie ich das lösen könnte?

von Sven P. (Gast)


Lesenswert?

strcpy(string, "Mueller");

Wenn ich mich net irre...

von Sven P. (Gast)


Lesenswert?

Nachtrag: Problem ist dabei, dass "Zeichenkette" (also Konstante mit 
Anführungszeichen drumrum) fest im Speicher abgelegt werden und dann als 
Zeiger verwendet werden.

> char *p = "Mueller";
Würde den Zeiger p auf die Stelle im RAM/ROM setzen, an der "Mueller" 
hinterlegt ist, ein folgendes
> p = "Meier";
Würde nur den Zeiger umbiegen. Wird dann aber auf *p zugegriffen, gibts 
entweder Zugrifssverletzungen oder andre Probleme...

Gleiches gilt, wenn man mit
> char s[30];
einen Vektor definiert.
> s = "Mueller";
würde dann die Adresse, an der "Mueller" hinterlegt ist, in s speichern, 
nicht aber die einzelnen Bytes ('M', 'u', 'e' ...), deshalb hab ich 
strcpy benutzt.

von Tester (Gast)


Lesenswert?

Hallo Sven

Merci für deine Antwort.
Ich werde es heute nocht testen, und dir Bescheid geben ob es geklappt 
hat..
Noch einen schönen Tag.

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.