Nicht zwingend HPC, ehr allgemein.
Strings werden mit std::string (pure C++) und/oder QString (Qt) dargestellt. Der C-String (char*) wird nicht mehr benutzt.
Das Konzept des C-Strings ist, die einzelnen Zeichen aneinander zu reihen und das Ende des Strings durch ein besonders ausgezeichnetes Zeichen darstellten: NULL. Das NULL Zeichen nennt man auch Sentinel. Dieses Prinzip ist auch 2020 Fehlerquelle #1 in Software.
In C++ werden Strings durch eine Aneinanderreihung von Zeichen dargestellt und zusätzlich die Länge des Strings separat gespeichert. Hierfür wird die Klasse std::string benutzt, welche intern 8-Byte Zeichen benutzt. Für GUI Anwendungen wird die Klasse QString verwendet, welche 16-Byte Zeichen benutzt. Um auch "Sonderzeichen" wie Umlaute oder EUR immer korrekt darzustellen.
Das Konzept des Sentinels ist nicht schlecht, es wurde sogar in C++17 standardisiert. Damit war es möglich in C++20 "Ranges" einzuführen. Eine grundsätzlich neue Technologie in der std C++ Welt.