PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zum C- Tutorial von Christian Schifferle



almic
02.05.2005, 21:29
Hallo,

habe folgendes Problem:


int sommer, winter, fruehling, herbst;



main (int argc, char *argv[])

{

while (argc > 1) {
argc--;
if (argv[argc][0] == '/') { /* Schalter erkannt */
switch (argv[argc][1]) {
case 'S': sommer = 1; break;
case 'W': winter = 1; break;
case 'F': fruehling = 1; break;
case 'H': herbst= 1; break;
}
}
}

...

...

}



In dem Kapitel werden die Schalter zu Programmstart behandelt.

1. Zeile: Solange argc großer als 1 ist befindet sich ein Ausdruck hinter dem Programmnamen.
2. Z: Von argc wird 1 subtrahiert.
3. Z: und dann das: if (argv[argc][0] == '/'
was soll das bedeuten?



danke
almic.

lekro
05.05.2005, 16:06
Schau dir doch mal die Deklaration von argv an. Das ist ein Array von C-Strings.

Mit argv[argc] machst du also einen einfachen Array-Zugriff auf das Element mit dem Index argc. Dieses Element ist ein char*. Das [0] dahinter liefert also das erste Zeichen dieses Strings, [1] entsprechend das zweite.

almic
06.05.2005, 21:16
jetzt verstehe ich...


danke