Forum: PC-Programmierung Zeichenkette in C


von Zeichenkette (Gast)


Lesenswert?

Hallo,

mal eine C Frage:


Wenn ich das Zeichenkettenarray

char string[] = "ein Text";

nutze, wie sieht das Array dann in Wahrheit aus?

ist es ein string[7], d.h. die Elemente 0 bis 6 mit den Werten
{e,i,n, ,T,e,x,t}

oder ist es in Wahrheit ein string[8] mit den Werten
{e,i,n, ,T,e,x,t,'\0'}


Danke!

: Verschoben durch Admin
von Cyblord -. (cyblord)


Lesenswert?

letzteres.

Das Nullbyte wird automatisch angefügt.

von Peter II (Gast)


Lesenswert?

Zeichenkette schrieb:
so
> oder ist es in Wahrheit ein string[8] mit den Werten
> {e,i,n, ,T,e,x,t,'\0'}

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Zeichenkette schrieb:
> oder ist es in Wahrheit ein string[8] mit den Werten {e,i,n,
> ,T,e,x,t,'\0'}

Letzteres, da in C jede Stringkonstante (Text, der in Anführungszeichen 
eingeschlossen ist) per Definition nullterminiert ist.

von Max H. (hartl192)


Lesenswert?

8 Zeichen, mit \0

von Daniel V. (danvet)


Lesenswert?

Zeichenkette schrieb:

> oder ist es in Wahrheit ein string[8] mit den Werten
> {e,i,n, ,T,e,x,t,'\0'}
   1 2 3 4 5 6 7 8   9

also für mich sind das, wenn schon, 9 Zeichen, also string[9].

von Cyblord -. (cyblord)


Lesenswert?

Dazu fällt mir ein:

F: Woran merkt man dass man mit einem C-Programmierer im Aufzug steht?

A: Der drückt die 3 wenn er in den 4. Stock möchte.

von NurEinGast (Gast)


Lesenswert?

hmmm.....

8 Zeichen "ein Text"
1 Zeichen 0x0

Ergibt aber    char[9]

von NurEinGast (Gast)


Lesenswert?

Daniel V. war schneller

von Udo S. (urschmitt)


Lesenswert?

Cyblord ---- schrieb:
> A: Der drückt die 3 wenn er in den 4. Stock möchte.

Ich kenne Aufzüge, da steht nicht "4. Stock" sondern "3. Obergeschoss".
SCNR

von Noch einer (Gast)


Lesenswert?

Simmt eigentlich.. Der 1. Stock ist mit "E" beschriftet, der 2. mit "1", 
usw. Passt doch alles.

F: Woran merkt man dass man mit einem Pascal-Programmierer im Aufzug 
steht?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Noch einer schrieb:
> F: Woran merkt man dass man mit einem Pascal-Programmierer im Aufzug
> steht?
Er bleibt im 255. Stock hängen...

: Bearbeitet durch Moderator
von Udo S. (urschmitt)


Lesenswert?

Lothar Miller schrieb:
> Er bleibt im 255. Stock hängen...

Nett :-)

Aber bis jetzt hat das höchste Gebäude der Welt nur 163 Stockwerke

von PittyJ (Gast)


Lesenswert?

http://de.wikipedia.org/wiki/Burj_Khalifa
Fahrstühle führen bis in die 189. Etage auf 638 Metern.

von npn (Gast)


Lesenswert?

PittyJ schrieb:
> http://de.wikipedia.org/wiki/Burj_Khalifa
> Fahrstühle führen bis in die 189. Etage auf 638 Metern.

Immer noch weit von 255 entfernt :-)

von Peter II (Gast)


Lesenswert?

npn schrieb:
> PittyJ schrieb:
>> http://de.wikipedia.org/wiki/Burj_Khalifa
>> Fahrstühle führen bis in die 189. Etage auf 638 Metern.
>
> Immer noch weit von 255 entfernt :-)

naja, es gibt ja auch noch Keller.

-128 +127 reicht schon nicht mehr.

von Rolf Magnus (Gast)


Lesenswert?

Cyblord ---- schrieb:
> Dazu fällt mir ein:
>
> F: Woran merkt man dass man mit einem C-Programmierer im Aufzug steht?
>
> A: Der drückt die 3 wenn er in den 4. Stock möchte.

Lustigerweise fangen auch viele nicht-Informatiker mit der 0 an, aber 
nur in manchen Situationen. Am spaßigsten ist es mit Uhrzeit und Datum. 
Bei Stunde, Minute und Sekunde wird bei der 0 angefangen, beim Tag und 
Monat bei 1, und beim Jahr dann wieder bei der 0, obwohl das eigentlich 
falsch ist. Als unser Kalender erfunden wurde, gab es in der Mathematik 
noch keine 0, daher fängt diese Zeitrechnung eigentlich beim Jahr 1 an. 
Das bedeutet übrigens auch, daß praktisch alle die Jahrtausendwende ein 
Jahr zu früh gefeiert haben. Die hat eigentlich erst beim Wechsel von 
2000 nach 2001 stattgefunden.

von Cyblord -. (cyblord)


Lesenswert?

Rolf Magnus schrieb:
> Als unser Kalender erfunden wurde, gab es in der Mathematik
> noch keine 0, daher fängt diese Zeitrechnung eigentlich beim Jahr 1 an.
> Das bedeutet übrigens auch, daß praktisch alle die Jahrtausendwende ein
> Jahr zu früh gefeiert haben. Die hat eigentlich erst beim Wechsel von
> 2000 nach 2001 stattgefunden.

Naja also so ist es nicht wirklich ;-)

Es gibt keien ECHTE oder UNECHTE Jahrtausendwende , weil das Jahr 0 
sowieso nicht genau festgelegt werden kann. Und beim Wechsel vom jul. 
auf den greg. Kalender auch mal ein paar Tage wieder weggefallen sind.

Die Theorie dass wir keine ordentliche Jahresangabe haben, wegen einer 
angeblich nicht vorhandenen 0 im Frühmittelalter halte ich nun wirklich 
für ein Märchen.

Die gesamte Kalendergeschichte und das Jahr 0 wurde eben einmal 
festgelegt und fertig. Und danach nochmal durch Papst Gregor geändert. 
Somit war unsere Jahrtausendwende so echt wie sie nur sein kann, weil es 
schlicht keine Daten für eine genauere Berechnung gibt.

Für eine ECHTE Jahrtausendwende (nach Christlicher Definition) müsste 
man wissen vor wieviel Jahren (min. genau auf ein Jahr) Jesus geboren 
wurde. Das ist aber nicht möglich. Das ist nicht genauer als +- 6 Jahre 
einzugrenzen. Somit sind alle Diskussionen ein oder zwei Jahre hin oder 
her völlig irrelevant.

: Bearbeitet durch User
von Rolf Magnus (Gast)


Lesenswert?

Cyblord ---- schrieb:
> Die gesamte Kalendergeschichte und das Jahr 0 wurde eben einmal
> festgelegt und fertig.

Auf das Jahr 1 v.Chr folgt das Jahr 1 n.Chr. Ein Jahr 0 gab es nie.

> Somit war unsere Jahrtausendwende so echt wie sie nur sein kann, weil es
> schlicht keine Daten für eine genauere Berechnung gibt.

Das ist wieder eine andere Geschichte.
Ich hab das an sich auch nur angebracht, weil ich überrascht bin, dass 
viele es so natürlich finden, bei 1 anzufangen, aber anscheinend nicht 
so natürlich, daß dann 2000 Jahre auch erst mit Beginn des Jahres 2001 
vorbei sind.

von Cyblord -. (cyblord)


Lesenswert?

Rolf Magnus schrieb:
> Ich hab das an sich auch nur angebracht, weil ich überrascht bin, dass
> viele es so natürlich finden, bei 1 anzufangen, aber anscheinend nicht
> so natürlich, daß dann 2000 Jahre auch erst mit Beginn des Jahres 2001
> vorbei sind.

Ja ok. Da hast du Recht.

Aber die Jahrtausendwende ist ja deshalb so Spannend weil das Datum 
umspringt.
Wieviele Jahre wirklich vergangen sind, ist ja eher nebensache. 
Höchstens für Weltuntergangspropheten von Bedeutung ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.