Frage zu Felder

steffias

Grünschnabel
Es ist ein Programm zu schreiben, welches die Länge der Zeichenkette zählt. Die Zeichenkette soll am Bildschirm eingegeben werden und das Ergebnis auch.
Mit einer while-Schleife realisiere ich das Programm so:
Code:
#include <stdio.h>
main()
{
    int i=0;
    char feld[100];
    printf("Geben Sie den Text ein:");
    scanf("%s",&feld);
    
    while(feld[i]!='\0')
    {
        i++;
    }printf("%d\n",i);
}

Nur wie könnte ich das Programm mit einer for-Schleife realisieren?
 
Hallo,

eine for-Schleife funktioniert folgendermaßen:

for(Initialisierung; Bedingung; Aktion)

aus deinem:
Code:
int i=0;
while(feld[i]!='\0')
{
i++;
}

lässt sich also folgendes machen
Code:
int i;
for(i = 0; feld[i] != '\0'; i++);

das sollte genauso funktionieren.

Das int i steht vor der Schleife, damit es noch nach dem Durchlaufen der Schleife abgefragt werden kann.

Kleiner Tip am Rande, baue einen Test ein, damit du nicht auf feld[100] usw zugreifst.
 
C:
#include <stdio.h>

main() {
char feld[100];
printf("Geben Sie den Text ein:");
scanf("%s",&feld);
for (int i=0, l=1; i<100; i++, l++){
if (feld[i] == '\0') {
printf("%d\n",l);
break;
}
}

Zur Erklaerung:

2 Schleifenvariablen, i ist Zaehler, l die Zahl der Zeichen.

i wird durchgezaehlt, jedes Feld mit if auf '\0' ueberprueft, ist es ungleich wird erneut in die Schleife gesprungen wobei i und l incrementiert werden. Wird if erfuellt, wird l ausgegeben und die Schleife aufgebrochen.

Nicht getestet, sollte aber so hinhaun. ;)

Edith: Geht auch noch kuerzer. ;) siehe Flegmon. ;)

PS wegen Test das Element 100 hat die Bezeichnung Feld[99] weil Felder von 0 - (n-1) gezaehlt werden ... deswegen darfst du ind er von Flegmon beschriebenen Schleife nicht weiter als feld[99] durch die Schleife laufen.
 
Zuletzt bearbeitet:
Zurück