mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik String verarbeiten


Autor: Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: STK500-Besitzer (Gast)
Datum:

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

Autor: Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
strcpy(string, "Mueller");

Wenn ich mich net irre...

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.