Problem mit strtok



  • Also ich habe folgendes Problem:
    Ich habe einen String der für gewöhnlich so aussieht:

    Benutzername#Passwort#
    

    Wenn ich jetzt mit:

    char *szNickname;
    char *szPassword;
    
    // allocate
    szNickname = new char[64];
    szPassword = new char[16];
    
    // extract nickname
    szNickname = strtok(szData, "#");
    
    // extract password
    szPassword = strtok(NULL, "#");
    

    die 2 Sachen auslese klappt das wirklich gut und ich könnte mit strcmp das Passwort mit einem String vergleichen.

    Jetzt kann es aber vorkommen das der String vom Anfang so aussieht:

    Benutzername##
    

    weil der User kein Passwort eingab.

    Komm ich jetzt mit strcmp stürtzt das Programm ab.

    Was kann ich dagegen machen??

    danke!
    cu para
    😃



  • Original erstellt von paranoiac.org:
    **...
    weil der User kein Passwort eingab.

    Komm ich jetzt mit strcmp stürtzt das Programm ab.

    Was kann ich dagegen machen??
    ...**

    strtok() liefert in diesem Fall einen NULL-Zeiger zurück. Das musst Du prüfen:

    if (szPasswort && strcmp(szPasswort,"geheim") == 0) { /* bla */ }
    

    -- ungetestet --

    Wenn ich das richtig sehe, produziert Dein Programm Memory Leaks.

    [ Dieser Beitrag wurde am 27.12.2002 um 19:39 Uhr von mady editiert. ]



  • was bringt das allocate?


Anmelden zum Antworten