<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
```