Variable mit Buchstaben füllen und wieder ausgeben

  • #1
S

Sebastian Leknuk

Guest
Hallo Zusammen

Ich habe eine relativ banale Frage:
Ich bin gerade dabei, C zu lernen und habe mommentan das Problem, dass ich z.B. das Wort Fisch in eine Variable speichern möchte.

Nun habe ich keine ahnung wie ich das anstelle. Für Zahlen ist mir der Fall klar (Int Zahl).

Was muss ich schreiben um mehrere Buchstaben hintereinander zu speichern und dann wieder auszugeben ?

Besten Dank für die Hilfe


Sebastian
 
  • #2
Die Variable als STRING deklarieren und ihr einfach den Wert (die Zeichenkette) zuweisen und anschließend über die PRINT-anweisung ausgeben!
 
  • #3
IMO gibts in C keinen String... da musst du ein CHAR[] nehmen
 
  • #4
Ist es möglich, dass ich diese Variable dann aber nicht mit scanf(%s, variable); füllen kann?

Muss ich da was anderes nehmen ?
 
  • #5
Sebastian schrieb:
Ich bin gerade dabei, C zu lernen und habe mommentan das Problem, dass ich z.B. das Wort Fisch in eine Variable speichern möchte. Was muss ich schreiben um mehrere Buchstaben hintereinander zu speichern und dann wieder auszugeben ?

Wie speichern? Initialisieren, kopieren, ...?

char* str1 = Fisch; // initialisieren

char str2[20];
strcpy(str2, str1); // kopieren
printf(%s\n, str2);

Oder willst Du vom Benutzer die Zeichen entgegennehmen?
 
  • #6
Fakt ist, du musst in C ein Array vom Typ Char oder Int nehmen...in letzterem Fall speicherst du die Assciwerte der Buchstaben und gibst sie dann als char formatiert aus.
 
  • #7
Ist es möglich, dass ich diese Variable dann aber nicht mit scanf(%s, variable); füllen kann?
Doch genau das ist schon möglich und so auch richtig, nur würde ich sie nicht variable sondern z.B. zeichenfolge nennen.
zuvor musst du ihr genügend Platz reservieren und deklarieren.
Code:
char zeichenfolge[50];
scanf(%s,zeichenfolge); //Zuweisung der Tastatureingabe bis zum abschliessenden Return

Wichtig hierbei ist natürlich das nicht mehr Zeichen eingetippt werden als reserviert wurden da sonst in nicht zugewiessenen Speicher geschrieben wird was böse Überraschungen bzw. einen Programmabsturz zur Folge hat.
Ausgeben kannst du den String dann einfach mit printf-Funktion.
 
  • #8
scanf is evil. :)
 
  • #9
Xcross schrieb:
Code:
char zeichenfolge[50];
scanf(%s,zeichenfolge);  //Zuweisung der Tastatureingabe bis zum abschliessenden Return

Kurze Zwischenfrage....geht das wirklich? Ich mein, nimmt der die Zeichenfolge selbstständig auseinander und weist sie den einzelnen Feldern zu?
Ich dachte immer man muss das in ner Schleife Zeichen für Zeichen einlesen und einzeln für
zeichenfolge[0] bis zeichenfolge[49] zuweisen *grübel*
 
  • #10
zeichenfolge ist einfach ein Zeiger auf einen zusammenhängenden Speicherbereich, welcher Platz für 50 Werte der Größe->sizeof(char)' bietet. Da Du vorhandene oder eigene Funktionen benutzen willst, die als Stringabschlussmarkierung NULL erwarten, kannst Du das Array reell aber nur für 49 Zeichen verwenden.

Ich mein, nimmt der die Zeichenfolge selbstständig auseinander und weist sie den einzelnen Feldern zu?

Ist ja letzlich wurscht, wie es implementiert ist. Da müsste man im Quellcode nachsehen. Vermutlich wird dort irgendwo eine Schleife mit Code in Zeigersyntax (also keine Arraysyntax) zu finden sein, die jedes Zeichen in Dein Array kopiert, bis im Buffer, aus dem gelesen wird, ein Zeilenvorschub gefunden wird - oder dieser Buffer keine weiteren Zeichen mehr enthält.
 
Thema:

Variable mit Buchstaben füllen und wieder ausgeben

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben