Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Variable mit Buchstaben füllen und wieder ausgeben
Diskutiere Variable mit Buchstaben füllen und wieder ausgeben im Webentwicklung, Hosting & Programmierung Forum im Bereich Netzwerk & Internet; 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...
#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
T
twingofahrer
Guest
Die Variable als STRING deklarieren und ihr einfach den Wert (die Zeichenkette) zuweisen und anschließend über die PRINT-anweisung ausgeben!
#3
M
Michael_B
Bekanntes Mitglied
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
IMO gibts in C keinen String... da musst du ein CHAR[] nehmen
#4
S
Sebastian Leknuk
Guest
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
D
Dings
Bekanntes Mitglied
Dabei seit
30.08.2005
Beiträge
390
Reaktionspunkte
0
Ort
Otherwhere
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 ?
Oder willst Du vom Benutzer die Zeichen entgegennehmen?
#6
K
Kharim
Mitglied
Dabei seit
28.12.2006
Beiträge
10
Reaktionspunkte
0
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
X
Xcross
Bekanntes Mitglied
Dabei seit
14.05.2004
Beiträge
862
Reaktionspunkte
0
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
D
Dings
Bekanntes Mitglied
Dabei seit
30.08.2005
Beiträge
390
Reaktionspunkte
0
Ort
Otherwhere
scanf is evil.
#9
K
Kharim
Mitglied
Dabei seit
28.12.2006
Beiträge
10
Reaktionspunkte
0
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
D
Dings
Bekanntes Mitglied
Dabei seit
30.08.2005
Beiträge
390
Reaktionspunkte
0
Ort
Otherwhere
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