Vektorkomponenten strings zuweisen



  • Hi sicher kann mir wer helfen,
    meine frage ist:
    Warum kann ich das unten nicht so deklarieren und zuweisen wie ich es unten gemacht habe???
    Ich will eigentlich den Komponenten von name, die strings, sprich die Namen der txt-Dateien zuweisen.
    Danke für eure Hilfe!!!

    main()
    {
         char name[3][8], zahl[27];
         int i, j, sum=0;
         FILE *EIN;
    
         name[1]="pi1.txt";
         name[2]="pi2.txt";
         name[3]="pi3.txt";
    

    die Fehlermeldung die ich erhalte lautet:
    --------------------------------------------------------------
    C:\Dokumente und Einstellungen\Hallo\Eigene Dateien>bcc32 pi.c
    Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
    pi.c:
    Error E2277 pi.c 10: Lvalue required in function main
    Error E2277 pi.c 11: Lvalue required in function main
    Error E2277 pi.c 12: Lvalue required in function main
    *** 3 errors in Compile ***
    --------------------------------------------------------------



  • Hallo!
    Deine zuweisung mit "=" ist nicht möglich, benutz dafür ne Funktion aus der string.h!
    Außerdem: der Feldindex beginnt immer mit 0!!! 👍

    So müsste es aussehen:

    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
    	char szName[3][8], szZahl[27];
    	int i,j,sum=0;
    	FILE* ein;
    
    	strncpy(szName[0],"pi1.txt",7);
    	strncpy(szName[1],"pi2.txt",7);
    	strncpy(szName[2],"pi3.txt",7);
    	//...
    }
    

    Btw: mit der Funktion strncpy kannst du die Anzahl der zu kopierenden Zeichen angeben; natürlich gut für die Sicherheit 🙂



  • Jo Danke so funzt es, aber warum geht das mit = nicht?



  • Weil man Arrays nicht mit = zuweisen kann.


Anmelden zum Antworten