021
17.10.2003, 19:53 Uhr
Pablo
Supertux (Operator)
|
String ="Das ist ein String" string als Array:
Code: |
{'D', 'a' , 's', ' ', 'i', 's', 't', ' ', 'e', 'i', 'n', ' ', 'S', 't', 'r', 'i', 'n', 'g', '\0'} Wert von x nach x++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Stelle am Array (und Wert von x vor x++) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
(leider klaptt es nicht so ganz )
C++: |
while(buffer[x] != '\0')x++;
|
"Solange buffer[x] keine \0 ist, wird x um 1 erhöht. Wenn string[x] = 'g', d.h x==17 sind wir am Ende des Strings, aber das wissen wir noch nicht. Da string[17] != '\0' ist, dann wird x++ ausgeführt, also ist x==18. Nun wird die while Schleife nochmla die Bedingung überprüfen. Diesesmal ergibt buffer[x] == '\0', weil x==18, x++ wird nicht mehr ausgeführt. 18 ist genau die Länge der Zeichenkette. Siehst du? Wir brauchen nicht nicht x um 1 zu erniedrigen, weil x schon die Länge der Zeichenkette hat, also, \0 ist das 19 Zeichen an der Stelle 18, und da die Arrays bei 0 anfangen, ist 18 die Länge bis zum \0. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 17.10.2003 um 19:56 Uhr von Pablo Yanez Trujillo editiert. |