String verarbeiten

Gast #821296
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
Gast #821331
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?
Gast #821340
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.