PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere (variable Anzahl) Strings an Funktion übergeben



shutdown
18-07-2007, 20:22
Hallo,

vielleicht kann mir jemand von euch sagen, wie ich in C eine Funktion realisieren kann, der ich eine variable Anzahl von Strings übergeben kann.

Ich stelle mir da etwas vor wie

void printstrings(int anzahl, char *string[anzahl]) {
int i;
for (i=0;i<anzahl;i++) {
printf(string[i]);
}
}

Nur funktioniert es eben so nicht...kann ich überhaupt die Anzahl der Strings an die Funktion übergeben und dann direkt schon diese Anzahl im Funktionsaufruf benutzen? Wahrscheinlich sind das extrem schlechte Anfängerfehler, aber das Beispiel soll ja nur aufzeigen was ich gerne hätte... :rolleyes:

Peter

jan61
18-07-2007, 20:49
...kann ich überhaupt die Anzahl der Strings an die Funktion übergeben und dann direkt schon diese Anzahl im Funktionsaufruf benutzen? Wahrscheinlich sind das extrem schlechte Anfängerfehler, aber das Beispiel soll ja nur aufzeigen was ich gerne hätte... :rolleyes:
Peter

Ja, das geht. Aber Du darfst nicht in der Funktionsdeklaration den 2. Parameter mit der Anzahl im Array aufrufen. Ein klassisches Beispiel mit dieser Konstruktion ist main:

int main (int argc, char *argv[]) {
int i = 0;
for (i = 0: i < argc; i++) {
...
}
...
}Eine andere Variante ist die Verwendung der Makros um va_start, va_arg, va_end

Jan

shutdown
18-07-2007, 23:19
Danke für den Tipp, hat mich schon weitergebracht :D

Peter