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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren