Array aus Strings
-
Hallo ich würde gerne ein Array erstellen, wo in jedem Feld ein String steht. In meinem Beispiel sind die Strings "/" und "*". Danach will ich das erste Element des Strings ausgeben, aber es funktioniert nicht. Ich mache es so:
const char Operatoren[] = {"*","/"}; printf("%s\n",&Operatoren[0]);
Die Fehlermeldung:
call_function.h:3:2: Fehler: Elementüberschreitung in char-Feld-Initialisierung
call_function.h:3:2: Fehler: (nahe der Initialisierung für »Operatoren«)Ich bin für jede Hilfe überas dankbar!
-
das ganze geht mit zweidimensionalen char-arrays:
char arrayname[Anzahl der Strings][Anzahl der maximalen Buchstaben pro String]
beispiel:
char array[5][20]; // erzeugt ein array, das platz für 5 strings mit je 19 buchstaben hat (+ den Nullterminator '\0'). // so füllst du das array: array[0]="test"; // Ausgabe: printf("%s\n",array[0]); // KEIN & !!!! printf("%c\n",array[0][0]); // der erste buchstabe des ersten strings, in diesem fall ein 't'
hier steht es ganz gut:
http://home.fhtw-berlin.de/~junghans/cref/CONCEPT/arrays.html#chard
-
Du brauchst ein Array aus Zeigern auf Strings (char-Array) .
const char *Operatoren[] = {"*","/", NULL}; // Das NULL ist nicht notwendig, aber sehr hilfreich bei der Bestimmung der Anzahl printf("%s\n",Operatoren[0]);
Müssen es denn Strings sein, oder gehen auch einzelne Zeichen?
-
so geht das schrieb:
// so füllst du das array: array[0]="test";
Das funktioniert nur mit strcpy().