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.941 Themen, 20.708 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
Ich danke Dir für die Information. Ich werde es so machen wie DU geschrieben hast, sonst handle ich mir wohl mehr Probleme ein, als ich brauch.
Gruß und Dank