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