<sub class="descriptionSection">09-01-2025 08:31:am // #Types // [[Programmierung]]</sub> ____ Ein String ist eine reihenfolge von Charactern. Um Strings in C++ zu nutzen muss die library "string" importiert werden. ## General ```cpp #include "string" ... std::string testString = "Hello Dad!"; ``` Strings sind in C++ eigentlich nur Arrays aus Charactern. Somit kann man viele Array funktionen auch auf Strings callen: ```cpp std::string testString = "Hello Mom!"; std::cout << testString.length() << endl; //gibt 9 aus ``` ## String splitting Man kann einen neuen String erstellen in dem man .substr() auf einen String called. Die methode .substr() verwirft nach einem gegebenen filter bestimmte teile des Strings: ```cpp std::string testString = "Hello World!"; std::cout << testString.substr(testString.length - 5, 4) ``` das erste Argument in .substr() ist der index bei dem der neue string anfangen soll, der zweite ist wie lange der neue string sein soll ausgehend vom startpunkt. ### Traditionelles Splitting In vielen Programmiersprachen gibt es eine funktion mit dem man einen String in ein array von strings splitten kann, in Cpp muss man dafür einen wrapper schreiben: ```cpp std::string testString = "Hello\nWorld!"; std::string delimiter = "\n"; //um den string jetzt bei \n zu spalten macht man das so: std::vector<std::string> splitString(const std::string& s, const std::string& delimiter) { std::vector<std::string> tokens; size_t pos = 0; std::string token; while ((pos = s.find(delimiter)) != std::string::npos) { token = s.substr(0, pos); tokens.push_back(token); s.erase(0, pos + delimiter.length()); } tokens.push_back(s); return tokens; } std::vector<std::string> testStringSplit = splitString(testString, delimiter) //gibt aus ["Hello", "World"] ``` ## Transform Operations Shiftet einen String komplett zu lowercase ```cpp // using std::transform() std::transform(s.begin(), s.end(), s.begin(), ::tolower); ``` ## Reversen von Strings Das hier reversed einen string komplett ```cpp string reverseMe = "Hallo Welt!" std::reverse(reverseMe.begin(), reverseMe.end()); std::cout << reverseMe << std::endl; //ausgabe: !tleW ollaH ```