std::string und Mid
-
Hallo,
für meine eigene Stringklasse brauche ich soetwas:
DT_String::SubString(int aiStartIndex, int aiLength , bool abRightToLeft /* = false */)Das Ganze lässt sich mit std::string ungefähr so lösen:
sub_str = str.substr(aiStartIndex, aiLength);Jetzt kann
bool abRightToLeftaber 'true' sein.
Gibt es eine Funktion die mir die Umrechnung des neuen Startpunkts abnimmt?
Merci
-
std::string hat einen reverse_iterator, der rückwärts durch den String läuft.
-
Wie wäre es mit aiStartIndex - aiLength ?
-
Hast recht. Iterator ist hierfür nicht so geeignet.
Danke für die Antworten.
-
Tanzfreak schrieb:
Jetzt kann
bool abRightToLeftaber 'true' sein.
Gibt es eine Funktion die mir die Umrechnung des neuen Startpunkts abnimmt?
Vielleicht solltest du erst mal kurz erklären was abRightToLeft überhaupt genau bewirken soll?
// dies? std::string subString1 = str.substr(str.length()-(start+length), length); // oder doch das hier? std::string subString2(str.rbegin()+start, str.rbegin()+start+length); // was ganz anderes?
-
erst mal kurz erklären
OK:
Hallo -> SubString(1,2, false) -> al
Hallo -> SubString(1,2, true ) -> ll // abRightToLeftstd::string subString1 = str.substr(str.length()-(start+length), length);Ich muss sicherstellen, dass
str.length()-(start+length)> 0 ist.
Ich habe mich nur gefragt, ob es eine Funktion gibt, die mir etwas von der Fehlerbehandlung abnimmt.
Vielleicht denke ich auch zu kompliziert. Mit der Lösung von oben kann ich aber gut leben.