for(int i=0; satz[i]!='\0'; i++)?

4 Antworten

Das ist noch keine for-Schleife, sondern nur der Schleifenkopf. Das lässt sich jedoch leicht in eine while-Schleife umwandeln, sodass es vielleicht klarer ist

int i=0;
while (satz[i]!='\0') {
  // Schleifenkörper
  i++;
}

TechPech1984  20.01.2022, 15:16

jo geht das char array bis zum zeichen ende wert . auch wenn das array großer war .

0
DesperateBoi 
Beitragsersteller
 20.01.2022, 15:15

also solange Zeilenende nicht erreicht wurde, geht die schleife ein zeichen weiter?

2

jo geht das char array bis zum zeichen ende wert . auch wenn das array großer war .

da die darstellung im speicher bei einem char array mit zeichen

z.b. char satz[50]

mit weniger als 50 zeichen , dann mit einem \0 abgeschlossen wird ... sonst läuft man in werte die noch nicht bestimmt wurden (im schlechtesten fall)

Ja, die Schleife wird solange ausgeführt, bis eine '\0' gefunden wird, die das Ende der Zeichenkette satz[] anzeigt.

Wenn satz[] eine eingelesen Zeile ist, muss man damit rechnen, dass vor '\0' ein '\n' als Endekennung steht.

Eine Liste mit Zeigern auf Strings wird solange durchlaufen, bis ein Zeiger auf einen Leerstring gefunden wird.


TechPech1984  20.01.2022, 15:15

da interpretirst du aber was was so nicht sein muss

char satz[5] = "....";

0