Hi,
bin etwas neu im Umgang mit C++ und Linux. Ich möchte einen String oder besser ein char Array auslesen und die einzelnen Stringteile in neue char* schreiben.
Als Beispiel:
char* data //data = "Node /home/wasauchimmer/datei.txt"
char* Definition // Definition = "Node"
char* Datei // Datei = "/home/wasauchimmer/datei.txt"
Dabei kann Definition oder Datei natürlich unterschiedliche Längen haben. Das Trennzeichen kann ich selber definieren, ist aber per Default ein Leerzeichen.
Kann mir jemand ein paar Tipps geben, wie ich hier am Besten anfange.
Gruß und Dank
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Du kannst zeichenketten, die per char* referenziert werden nicht einfach aufteilen, weil die entsprechende speicherzuweisung das u.u. nicht zulässt (z.b. konstante zeichenketten).
Verwende stattdessen die klasse string aus der "C++ Standard Library". Dort kannst du dann mit find() und substr() die zerteilung in neue strings einfach vornehmen und kannst gleichzeitig die speicherverwaltung vergessen.
Z.b.:
#include <string>
std::string data="Node /home/wasauchimmer/datei.txt";
int i=data.find(' ');
if(i>=0){
std::string Definition=data.substr(0, i);
std::string Datei=data.substr(i+1);
printf("Definition: %s\n", Definition.c_str());
printf("Datei: %s\n", Datei.c_str());
}
mr.escape