Token und strings ?
-
Hallo zusammen,
ich habe eine string Frage und ich komme nicht drauf, wie ich das am besten mache.
Ich bekomme immer unterschiedliche strings der Form.C:\das ist der Pfad\und\der\variiert\einBild.jpg
Der ist ein
const CString& path;wie kann ich das jetzt deixeln, dass ich in einer Variable, am Besten
const char* Name;nur das
einBild.jpg
gespeichert habe ???
-
benutze am besten std::string.
std::string strPath("C:\\das ist der Pfad\\und\\der\\variiert\\einBild.jpg"); std::string strFile(strPath.substr(strPath.rfind("\\") + 1, strPath.size()));[edit]
http://www.cppreference.com/cppstring/index.html
http://cplus.kompf.de/artikel/strings.html
und weitere links findest du oben rechts
-
Hmm das geht so leider nicht.
Sonst noch ne Idee?
-
strings++ schrieb:
Hmm das geht so leider nicht.
Sonst noch ne Idee?warum?
-
http://www.cppdoc.com/example/mfc/classdoc/MFC/CString.html#ReverseFind(TCHAR)
damit suchst einfach nach '/', da du von hinten beginnst, hast du somit das letzte /, danach steht ja der Dateiname
-
weil er ganz viele Fehler wirft...
Mein Code :
int main (int nNumberofArgs, char* []) { std::string strPath("C:\das ist der Pfad\und\der\variiert\einBild.jpg"); std::string strFile(strPath.substr(strPath.rfind("\") + 1, strPath.size())); cout << strFile << endl; system("PAUSE"); return 0; }Fehler:
error C2001: Zeilenumbruch innerhalb einer Konstanten
error C2146: Syntaxfehler: Fehlendes ) vor Bezeichner cout
error C2143: Syntaxfehler: Es fehlt ) vor ;
error C2143: Syntaxfehler: Es fehlt ) vor }
error C2143: Syntaxfehler: Es fehlt ; vor )
-
string ++ schrieb:
weil er ganz viele Fehler wirft...
Und schon am Syntaxhighlighting solltest du erkennen können, woran das liegt. Vergleich doch mal die Quelltexte.
-
strings++ schrieb:
Hallo zusammen,
ich habe eine string Frage und ich komme nicht drauf, wie ich das am besten mache.
Ich bekomme immer unterschiedliche strings der Form.C:\das ist der Pfad\und\der\variiert\einBild.jpg
Der ist ein
const CString& path;wie kann ich das jetzt deixeln, dass ich in einer Variable, am Besten
const char* Name;nur das
einBild.jpg
gespeichert habe ???
Das geht nicht, da ein const char* nur ein Zeiger ist und Du da keine Zeichenkette unterbringen kannst. Er kann höchstens auf eine Zeichenkette zeigen :p .
Übrigens: mit "\n" definierst Du eine Zeilenschaltung in einem String. Mit "\" ein Backslash. Mit "\\n" ein String mit einem Backslash und dem Buchstaben 'n'. Ein String "C:\neu.txt" ergibt dann ein String mit einer Zeilenschaltung. Vor der Zeilenschaltung steht "C:" und nach der Zeilenschaltung dann "eu.txt".
-
soderle..
Fehler gefunden. Problem ist aber, dass ich tatsächlich meinen Pfad mit \ bekomme... komm ich da irgendwie drumrum?
-
string ++ schrieb:
Fehler gefunden. Problem ist aber, dass ich tatsächlich meinen Pfad mit \ bekomme...
Das ist kein Problem. Doppelte Backslashes brauchst du nur bei Stringliteralen im Quellcode.
-
Super, das funktioniert tatsächlich. Hervorragend!!
Vielen Dank für deine Geduld !!!