Stringliste ausgeben
-
moin moin,
ich hab da ein kleines prob und seh meinen fehler nicht wirklich.
also ich hab eine stringlistechar *pMeineStrings[] = { "Langer Text.", "Sehr langer Text.", "Killroy was here !!", "Bill", "Pssst, pssst ... Ruhe!", "\0\0" };
und die soll ich über eine funktion ausgeben. aber bei mir macht er nur die erste zeile oder schmeisst mir einen fehler aus. meine funktion sieht zZ so aus:
void PrintStringliste(char *pM){ int j; for(j=0;pM[j] !='\0';j++){ printf("%s\n",pM[j]); }
wobei 'pM die stringliste ist die in main an die funktion übergebe
kann mir bitte jemand sagen wie ich denn nun die komplette stringliste aus gegeben bekomme?
mfg
-
Hallo,
probier mal deiner Funktion den ganzen Array zu übergeben...
Dazu musst du die Funktionsdeklaration von
void PrintStringliste(char *pM){...}
auf
void PrintStringliste(char **pM){...}
oder
void PrintStringliste(char *pM[]){...}
ändern.
Desweiteren ist deine Abbruchbedingung nicht richtig.
Willst du Strings vergleichen brauchst du str(n)cmp oder du machst es selbst per hand, zeichen für zeichen.Du kannst aber so etwas verwenden, da ich glaube das ist das was du suchst...
char *pMeineStrings[] = { "Langer Text.", "Sehr langer Text.", "Killroy was here !!", "Bill", "Pssst, pssst ... Ruhe!", "" };
und in deiner Funktion
for(j=0;pM[j][0] != '\0';j++){ printf("%s\n",pM[j]); }
Gruss
Tobi
-
hi danke für die antwort nun klappt aber meine übergabe nciht mehr.
hier der funktions aufruf.
PrintStringliste(*pMeineStrings);
und die fehlermeldung chekc ich nciht so ganz
und wenn ich den funktionsaufruf so machePrintStringliste(*pMeineStrings[]);
dann geht es auch nicht
-
eldios schrieb:
hier der funktions aufruf.
PrintStringliste(*pMeineStrings);
Typfehler, du willst doch ein String-Array übergeben und nicht nur einen String (das erste Element des Arrays).
PrintStringListe(pMeineStrings);
und die fehlermeldung chekc ich nciht so ganz
Hättest du sie gepostet, hätt ich sie dir erklärt
und wenn ich den funktionsaufruf so mache
PrintStringliste(*pMeineStrings[]);
dann geht es auch nicht
Das ist ja auch syntaktisch falsch. *pMeineStrings[] kommt in der Deklaration vor (es ist ein Deklarator), kann aber nicht als Ausdruck interpretiert werden. Anders dagegen *pMeineStrings[0], das wäre das erste Zeichen des ersten Strings, also 'L'.
-
expected primary-expression before ']' token
das war die fehlermeldung.
aber danke es funzt jetzt einwadfrei.
vielen dank
-
http://www.pronix.de/pronix-4.html
du brauchst ein tutorial oder buch.