String auf Datum prüfen



  • Hi,

    folgendes: ich müsste prüfen ob in einem string ein datum enthalten ist oder ein string.
    ich bin zuerst auf strptime gestoßen(ist das überhaupt c++? finde dazu keine referenz). funktioniert aber sowieso nicht da nicht in der time.h vorhanden. (vgl. http://www.mail-archive.com/bug-gnulib@gnu.org/msg17739.html )
    eine andere strtotime funktion habe ich nicht gefunden...

    daher wäre wohl sscanf die beste wahl (ist halt c :/,
    jedoch gibt er mir nicht out2 aus...

    hab ich da irgendwo ein denkfehler drin? wenn zwischen den parametern ein whitespace ist interpretiert er das ja auch oder?

    //fin_out --> 2010-05-24 14:12:05
                            char out1[4];
                            char out2[2];
                            char out3[2];
                            char out4[2];
                            char out5[2];
                            char out6[2];
                            int res;
    
                            res = sscanf (fin_out[2].c_str(),"%4[0-9]-%2[0-9]-%2[0-9] %2[0-9]:%2[0-9]:%2[0-9]", out1, out2, out3, out4, out5, out6);
                            if(res < 6) {
                                std::cout << "\ndate not found\n";
                            }
    
    //ausgabe --> out1(2010) out2(leer?) out3(leer?) out4(leer?) out53(12) out6(05)
    

    PS.: schonmal vielen dank für den guten rat 😉

    EDIT: gibt es eventuell auch eine equivalente funktion aus der iostream bib?



  • omf... kein wunder wenn man vergisst das noch die null terminierung platz haben muss..


Anmelden zum Antworten