Announcement

Collapse
No announcement yet.

Strukturen und Char-Array in C

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Strukturen und Char-Array in C

    Hallo an alle Entwickler!
    Habe folgendes Problem:
    <PRE>
    #include <stdio.h>
    #include <stdlib.h>

    struct personId
    {
    char firstName[20];
    char lastName[30];
    short yearOfBirth;
    };

    int main()
    {
    struct personId person1 = {"James" ,"Cook" , 1742};
    struct personId person2;

    person1=person2;
    person2.yearOfBirth=1699;

    printf("person1 lastName: %s \n", person1.lastName);
    printf("person2 firstName: %s\n", person2.firstName);
    printf("person2 borne in %4i\n", person2.yearOfBirth);

    system("PAUSE");
    return 0;
    }
    </PRE>

    Warum wird ein blödsinn ausgegeben?
    Übrigens mit strcpy wird genau das gleiche ausgegeben, nähmlich:
    <PRE>
    person1 lastName: 9$=
    person2 firstName: .½w
    person2 borne in 1699
    Drücken Sie eine beliebige Taste . . .
    </PRE>
    Danke. Cya.

  • #2
    Weil du zwar mit

    personId person2;

    eine neue Person anlegst, die keinen Inhalt hat und damit gleich

    person1=person2;

    person1 überschreibst.

    So ist es besser:

    <pre>
    struct personId
    {
    char firstName[20];
    char lastName[30];
    short yearOfBirth;
    };

    int main(int argc, char* argv[])
    {
    personId person1={"James" ,"Cook" , 1742};
    personId person2;
    person2=person1;
    person2.yearOfBirth=1699;
    printf("person1 lastName: %s \n", person1.lastName);
    printf("person2 firstName: %s\n", person2.firstName);
    printf("person2 borne in %4i\n", person2.yearOfBirth);
    system("PAUSE");
    return 0;
    }

    </pre>

    Kennst du den Spruch:

    "wer nämlich mit "h" schreibt ist..."

    :-)
    Christian

    Comment

    Working...
    X