Structur vergleichen und füllen



  • Wenn ich eine Structur habe wie z. B. :

    struct bla
    {
     char typ1[10];
     char typ2[10];
     char typ3[10];
     char typ4[10];
    };
    

    Kann ich die dann einfach füllen ohne für jedes Feld schreiben zu müssen
    gets(typ1);?
    Und kann ich die dann auch einfach mit einem Feld einer anderen Structur
    vergleichen? strcmp(typ1, typ1/*andere Struct*/);?

    Geht das oder muss man zu 1. schreiben:

    gets(typ1);
    gets(typ2);
    gets(typ3);
    

    Und zu 2. für jedes Feld (z. B.

    char typ1[10];
    

    ist doch ein Feld)eine eigene Funktion schreiben?

    Hoffentlich habt ihr mich verstanden 🙄;



  • Nene. Du hast den Sinn von Strukturen nicht ganz verstanden, denke ich.

    #include <stdio.h>
    #include <string.h>
    
    typedef char char10[10];
    struct bla {
      char10 t1, t2, t3, t4;
    };
    
    void einlesen (struct bla* p) {
      gets (p->t1); gets (p->t2); gets (p->t3); gets (p->t4);
    }
    
    int main (void) {
      struct bla a, b;              /* 2 'Objekte' von Strukturen */
      einlesen (&a); einlesen (&b);
    
      if (!strcmp (a.t1, b.t1)) {   /* Vergleiche a.t1 mit b.t1 */
        puts ("gleich");
      } else
        puts ("Ungleich");
    
      return 0;
    }
    

    Es gibt übrigens besseres als gets. Und bei 'char typ1[10]' lügt der Name, weil typ1 kein Typ ist, sondern eine Variable vom Typ 'char[10]'.

    PS: Ich denke das gehört nach C, darum auch C-Code.



  • Ich denke das gehört nach C

    Denke ich auch 🙂


Anmelden zum Antworten