Inhalt von Struktur ersetzten



  • Hallo,

    Habe folgendes Programm in C geschrieben:

    [/cpp]

    struct person
    {
    char name[20];
    char beruf[20];
    int alter;
    };

    void eingabe();

    void eingabe()
    {
    char taste;
    int anzahl=0,platz;
    person pers[10];
    clrscr();

    while(taste!='n')
    {

    clrscr();
    printf("Ihr Name: ");
    gets(pers[anzahl].name);
    printf("Ihr Beruf: ");
    gets(pers[anzahl].beruf);
    printf("Ihr Alter: ");
    scanf("%d",&pers[anzahl].alter); fflush(stdin);
    anzahl++;
    printf("Nochmal eingeben? ");
    taste=getch();
    }
    printf("\nNun wird die Liste ausgegeben! ");

    for(int i=0;i<anzahl;i++)
    {
    cout<<"\n"<<i+1;
    printf("\nName: ");
    puts(pers[i].name);
    printf("Beruf: ");
    puts(pers[i].beruf);
    printf("Alter: ");
    printf("%d",pers[i].alter);
    printf("\n\n");
    }

    printf("Name löschen");
    printf("Welche Stelle möchten Sie löschen?");
    cin>>platz;

    ....................
    [/cpp]

    Nun wollte ich wissen, wie es funktionier, den vom Benutzer eingegebenen Platz also den eingegebenen Namen den Beruf und das Alter durch -1 oder - zu ersetzten. Ich hoffe ihr könnt mir helfen. Vielen Dank!!!



  • Benutze codetags richtig.

    Zu der Frage:
    Der einfachheit halber würd ich in ner forschleife - an jede Stelle des betreffenden arrays schreiben, beim alter dürft die sache klar sein.

    Ich bin jetzt nicht sicher ob ich deine Frage überhaupt richtig verstanden habe,
    das ganez erscheint mir sehr trivial -> fals nciht klär mich auf was genau du willst

    PS: Du hast keine main() -> absicht? oder ist das nciht das ganze Programm?



  • Hallo,

    Das ist nicht das ganze Pogramm, nur ein Ausschnitt.

    Dieses Beispiel ist eigentlich nur eine Übung für einen Test in der Schule. Der Benutzer gibt beliebig oft Namen Beruf und Alter an.Z. B.

    Name ? eingabe z.B. Hans
    Beruf ? z.B Lehrer
    Alter ? z.B 46

    Das kann er beliebig oft machen.
    Dann wird die komplette Liste ausgegeben. z.B

    1
    Name: Hans
    Beruf: Lehrer
    Alter: 46

    2
    Name: Erich
    Beruf: Tischler
    Alter: 35
    .
    .
    .
    .
    u.s.w.

    dann kann der Benuzer einen Platz auswählen, der gelöscht werden soll. Auf dieses Beispiel bezogen z.B. 2
    Dann soll bei 2 stehen: (-1 bedeutet dann halt gelöscht)

    Name: -1
    Beruf: -1
    Alter: -1

    Die neue Liste sollte dann so aussehen:

    1
    Name: Hans
    Beruf: Lehrer
    Alter: 46

    2
    Name: -1
    Beruf: -1
    Alter: -1

    Ich hoffe ihr könnt mir jetzt weiterhelfen
    Danke!!!



  • Beim Namen und Beruf würde ich kein -1 einsetzen, sondern einen leeren String - und den erreichst du durch "strcpy(pers[i].name,"");" oder "pers[i].name[0]='\0';" den Alterswert kannst du einfach so überschreiben per "pers[i].alter=-1;".


Anmelden zum Antworten