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().


Anmelden zum Antworten