mikrocontroller.net

Forum: Compiler & IDEs Kurze Frage zu Array´s


Autor: Mark F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'Zuweisung' ist 'Zuweisung'. Der vorhergehende Inhalt geht
verloren. Willst du das nicht, dann darfst du nicht zuweisen,
sondern anhängen.

Eine kleine Einführung, die einen K&R nicht ersetzen kann,
findet sich hier:
http://www.mikrocontroller.net/articles/FAQ#Wie_fu...

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
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
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.

Autor: Mark F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Informationen!

Mfg Mark

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.