dateiextensions abtrennen?



  • Hallo! ich bin neu hier und erhoffe mir von der community ein wenig hilfe!

    wir sind grad in informatik3 an der FH Brandenburg bei folgenden Problem!

    Wir lernen grad kennen das "string" viel mehr als nur ein datentyp ist sonder auch ein klasse...wir sollen einen quelltext schreiben wo wir einen filenamen eingeben sollen wie zum beispiel "hallo.txt"! als ausgabe soll jedoch nur "hallo" auf der konsole ausgegeben werden! weiterhin sollen wir das programm so verändern das auch dateiendungen mit mehr als 3buchstaben wie zum beispiel "hallo.data" abgeschnitten werden! ich bitte um hilfe.....

    in diesem sinne freue ich mich auf eine antowort! schönen tag noch

    grüße ando08



  • Such z.B. den letzten Punkt im String und nimm dann alles vom Anfang bis zu der gefundenen Position.



  • okay....aber wie soll ich das quelltextmäßig umsetzen? ich werde mal das posten was ich bereits geschrieben habe!



  • Zum Suchen kannst du rfind() oder find_last_of() verwenden - danach mußt du den hinteren Teil nur noch mit erase() den hinteren Teil abschneiden oder mit substr() ihn herausgreifen.

    (du solltest dabei noch beachten, daß möglicherweise Namen ohne Dateiendung übergeben werden)



  • void extension(const std::string& filename, std::string& dest)
    {
        const std::size_t pos_dot(filename.rfind("."));
        if (pos_dot == std::string::npos) { dest = ""; return; }
        const std::size_t pos_slash(filename.find_last_of("\\/"));
        dest = (pos_slash > pos_dot ? "" : filename.substr(pos_dot));
    }
    

    ... ^^



  • besten dank für all die schnelle hilfe! bis jetzt funktioniert es...danke danke danke!

    bis zum nächsten mal^^


Anmelden zum Antworten