Verständnisproblem bei Arrays von Strukturen



  • Hallo,

    ich möchte mittels Strukturen ein Telefonverzeichnis (max. 100 Einträge) erstellen.
    Wie kann ich hier z.B. auf das Element vorname zugreifen?
    Ich möchte im Array liste an der Stelle 0 einen Vornamen zuweisen.
    Mit
    liste[0].vorname =
    komme ich nicht weiter.

    #include <stdio.h>
    
    struct daten
    {
    	char	vorname[20];
    	char	name[20];
    	char	tel_nummer[16];
    } liste[100];
    
    int main(void)
    {
    	liste[0].vorname =
    
    	getchar();
    	return 0;
    }
    


  • Hallo,

    da 'vorname' selbst wieder ein Array darstellt, mußt du entspechende Funktionen benutzen - in deinem Fall strcpy oder noch besser strncpy:

    strcpy(liste[0].vorname, "ledi111");
    strncpy(liste[0].vorname, "ledi111", 20);
    


  • Vielen Dank!

    D.h. ich mach das dann mal so:

    #include <stdio.h>
    #include <string.h>
    
    struct daten
    {
    	char	vorname[20];
    	char	name[20];
    	char	tel_nummer[16];
    }liste[100];
    
    int main(void)
    {
    	strcpy(liste[0].vorname, "Max"); 
    	strcpy(liste[0].name, "Muster"); 
    	strcpy(liste[0].tel_nummer, "06601234557"); 
    	strcpy(liste[1].vorname, "Eva"); 
    	strcpy(liste[1].name, "Muster"); 
    	strcpy(liste[1].tel_nummer, "06601234558"); 
    
    	printf("\n%s, %s, %s",liste[0].vorname, liste[0].name, liste[0].tel_nummer);
    	printf("\n%s, %s, %s",liste[1].vorname, liste[1].name, liste[1].tel_nummer);
    	getchar();
    	return 0;
    }
    


  • Bei der Definition von Variablen kannst du auch gleich Werte zueweise.
    Z.B.

    int i = 0;
    

    Das geht auch bei Arrays und Strukturen:

    struct daten
    {
        char    vorname[20];
        char    name[20];
        char    tel_nummer[16];
    }liste[100] = { { "Max", "Mustermann", "06601234557" },
                    { "Eva", "Mustermann", "06601234557" },
                    { "Rosi", "Mustermann", "32168" }
                  };
    

Anmelden zum Antworten