Stringbearbeitung und replace
-
Ich will eine Quelldateiname als string bearbeiten, so dass die Erweiterung (entweder .h oder .hpp) weg ist. Nehmen wir an, dass ich "hallo.h" habe. Dann muss es zu "HALLO_GUARD" werden.
Ich habe folgendes Porgamm geschrieben, ob es funkzioniert, weiß ich nicht:string start = "myheader.h"; //hier kann es auch .hpp sein! transform(start.begin(), start.end(), start.begin(), std::toupper); start.replace(start.find("."), "_GUARD"); cout << "#ifndef " << start << endl; cout << "#define " << start << endl;
-

-
wieso weißt du nicht ob es funktioniert?
naja, trotzdem fehlt bei replace nen parameter
-
Weil ich das Quellkode immer noch schreibe. Könnten sie so gut sein und mir helfen? Bitte.
-
Biste besoffen?
-
Das funktioniert schon deswegen nicht, weil replace mindestens 3 Parameter erwartet.
eher sostring start = "myheader.h"; //hier kann es auch .hpp sein! transform(start.begin(), start.end(), start.begin(), std::toupper); string::size_type pos = start.find_last_of("."); start.replace(pos, start.size() - pos + 1, "_GUARD");
-
Zdravko schrieb:
Weil ich das Quellkode immer noch schreibe. Könnten sie so gut sein und mir helfen? Bitte.
naja die spracherkennung funktioniert auch schlecht im aktuellen c++ standard

-
Braunstein, danke sehr. Das wird mir sicherlich helfen!
-
Zdravko scheint aus Bulgarien zu kommen, da kann man das mit der Sprache schon verstehen.
-
Verwende doch einfach http://www.boost.org/libs/algorithm/string/index.html
anstatt die gleichen Algos immer und immer wieder neu zu schreiben