string inistalisieren



  • hi
    ich habe ein string definiert:

    typedef struct /*definition der messege-struktur*/
    {
    long nType;
    char szText[PATH_MAX]; // da ist der string!!

    } message_t;

    , ich will ihn in meinem programm auf " " inistalisieren, wie geht das? ich habe vieles versucht, aber wenn ich ihn einmal verwendet habe, dann bleiben die hinteren zeichen und und diese bleiben mir bei weiteren verwendung erhalten.
    danke



  • message_t deine_variabel;

    memset((void*)&deine_variabel,0,sizeof(message_t));

    Setzt die ganze Struktur auf Null ..... das kannst du natürlich auch
    nur auf "szText" anwenden...

    "man memset"
    http://www.hmug.org/man/3/memset.html



  • danke für die antwort, ich habe es jetzt probiert, aber das problem jetzt ist: nach dem löschen kann ich den string nicht verwenden(also erster versuch)
    also was ich brauch ist, dass der string zb den wert " " bekommt, sonst nichts und keine weiter zeichen soll enthalten sein.
    vielen dank
    ps: ich bin anfänger in c.



  • alle funktionen die mit den char feldern arbeiten
    (ausgaben mit printf, usw.) lesen den string solange
    bis ein '\0' kommt.
    du muss also noch dieses zeichen hinter den string setzten,
    wenn du z.B. an stelle 0 des strings ' ' schreibst, musst
    du dahinter ein '\0' setzten, damit die funktionen wissen
    wo das ende des strings ist,
    also:

    message_t a;
    a.szText[0] = ' ';
    a.szText[1] = '\0';


Anmelden zum Antworten