Zeichenketten Zerlegen!



  • Ich muss eine Zeichenkette der form 2003052309552003 = Datum und genaue Uhrzeit am stück zerlegen in ein normales Datum und ne normale Uhrzeit, in der reihen folge:

    Tag Monat Jahr Stunde Minute Sekunde Hunderstel



  • SChau dir mal die members der Class string an wenn du es mit dieser Klasse machen willst

    find
    mid



  • naja das funktioniert ganz wunderbar mit den methoden memcpy:

    /*the buffer with the data*/
    char* read = "2003052309552003";
    
    /*allocate memory for new buffers/*
    char* day = new char [2];
    char* month = new char [2];
    char* year = new char [4];
    char* hour = new char [2];
    char* minute = new char [2];
    char* second = new char [2];
    char* milli = new char [2];
    
    /*copy the parts in the empty buffers*/
    
    memcpy (day, read, 2);
    memcpy (month, read+2, 2);
    memcpy (year, read+4, 4);
    memcpy (hour, read+8, 2);
    memcpy (minute, read+10, 2);
    memcpy (second, read+12, 2);
    memcpy (milli, read+14, 2);
    
    /*ready*/
    
    Erklärung: memcpy erwartet als ersten Parameter einen Zeiger auf den Buffer, in den die daten geschrieben werden sollen. da unser buffer nen zeiger ist (ein array eigendlich), brauchen wir & nicht mehr angeben. Der zweite Parameter ist die Anfangsadresse, wo memcpy die daten findet. Hier müssen wir einen "offset" angeben, wir gehen n-bytes weiter. Als 3. Parameter geben wir noch an, wie viele bytes kopiert werden sollen, fertig.
    
    Ach man kann auch strcpy verwenden, für buffer ist dies eigendlich zweckmäßiger. Guck dir die Funktionen mal an.
    

Anmelden zum Antworten