Kurze Frage zu Array´s

Gast #613295
Lesenswert?
• ▲
▼
Moin !

Was passiert wenn ich zwei mal hintereinander einen String in einen 
Array schreibe?

char TEST[256];

Ich schreibe erst POLIZEI und danach FEUERWEHR in das Array TEST.

Wie geht das Array damit um bzw. wie wird die Anordnung im Array sein?

So:
POLIZEIFEUERWEHR

oder wird POLIZEI überschrieben und da steht nur FEUERWEHR drin ?

Oder ist das noch abhängig welchen Befehl ich zum schreiben verwende ?

Mfg Mark
Persönliche Seite #613303
Lesenswert?
• ▲
▼
In der Regel wird überschrieben, es sei denn, Du verwendest strcat.

Einige Tips:

- Variablennamen NIE in Versalien (komplett in Großbuchstaben)
  schreiben.
  Das ist für Präprozessormacros (#defines) vorgesehen

- Besorge Dir das Buch "Programmieren in C" von Kernighan&Ritchie
  in der zweiten Auflage (Hanser-Verlag). Das erklärt die Grundlagen.

- Keine mir bekannte Sprache schreibt die Pluralform eines Wortes
  durch Anhängen eines Apostroph-S oder (wie in Deinem Fall) gar
  Akzent-S. Der Plural von Array lautet Arrays. Einfach so.
Gast #613315
Lesenswert?
• ▲
▼
@  Rufus t. Firefly (rufus)

>- Keine mir bekannte Sprache schreibt die Pluralform eines Wortes
>  durch Anhängen eines Apostroph-S oder (wie in Deinem Fall) gar
>  Akzent-S. Der Plural von Array lautet Arrays. Einfach so.

Doch, der alltägliche deutsche Wahnsinn, orientierungslos torkelnd 
zwischen Zeitgeist und Amerikaniserung.

http://www.apostroph.de/

Dort sieht man zahllose Katastrophen mit Apostrophen.

MfG
Falk, leicht OT
Gast #613317
Lesenswert?
• ▲
▼
> Wie geht das Array damit um bzw. wie wird die Anordnung im Array sein?

Das kommt drauf an, wie du den String reinschreibst.

> Oder ist das noch abhängig welchen Befehl ich zum schreiben verwende ?

Ja. Prinzipiell ist das Array immer 256 Bytes lang. Als "String" 
bezeichnet man in C Text, der mit einem '\0' terminiert ist. Das ist 
mehr oder weniger eine Konvention. Die Stringfunktionen von C erzeugen 
das Terminierungszeichen bzw. werten es aus.

Ich drehe es mal zum Verständnis rum und schreibe zuerst den längeren 
String rein:

Nach einem
1
strcpy(TEST, "FEUERWEHR");

Steht dann in den ersten 10 Bytes des Arrays:

'F' 'E' 'U' 'E' 'R' 'W' 'E' 'H' 'R' '\0'

Wenn du dann ein
1
strcpy(TEST, "POLIZEI");

machst, steht dort:

'P' 'O' 'L' 'I' 'Z' 'E' 'I' '\0' 'R' '\0'

Da die Stringfunktionen nur bis zum ersten \0 lesen, findest du da also 
"POLIZEI" drin.

Antwort schreiben

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.

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.