Seite 1 von 1

Etwas in char pointer einfügen?

Verfasst: So Apr 17, 2016 1:55 am
von Zenerid
Ich würde gerne in ein HTML Dokument, um genauer zu sein in den <body>, dass ich vorher in ein char pointer einlese, text einfügen aber gibt es in c eine Funktion dafür? Muss man dabei etwas beachten, wenn ich etwas darin einfüge? Der Text soll wie gesagt in den body (oder nach dem <body> tag, wie auch immer) und dabei darf der Text aber nicht das HTML Dokument zerstören.

Re: Etwas in char pointer einfügen?

Verfasst: So Apr 17, 2016 9:25 am
von cloidnerux
text einfügen aber gibt es in c eine Funktion dafür?
Das Problem ist, dass ein char pointer, wie der Name schon sagt, ein pointer ist. Er zeigt auf ein Stück Speicher.
In diesem Speicher liegt dein Text:
"<html>\n<head>\n></head>\n<body>\n...</body>\n</html>"
Ich hab mal die Zeilenumbrüche explizit mit \n eingetragen. Willst du jetzt neuen Text eintragen, musst du diesen ja dazwischen schieben. Das geht aber nicht so einfach.
Was also gemacht werden muss:
1. Neuen Speicherblock reservieren, der beide Texte fassen kann.
2. Den alten Text bis zur Einfügestelle in den neuen Speicher kopieren.
3. Den einzufügenden Text dahinter kopieren
4. Den Rest vom Ursprungstext Kopieren.

Re: Etwas in char pointer einfügen?

Verfasst: So Apr 17, 2016 10:29 am
von Xin
Zenerid hat geschrieben:Ich würde gerne in ein HTML Dokument, um genauer zu sein in den <body>, dass ich vorher in ein char pointer einlese, text einfügen aber gibt es in c eine Funktion dafür? Muss man dabei etwas beachten, wenn ich etwas darin einfüge? Der Text soll wie gesagt in den body (oder nach dem <body> tag, wie auch immer) und dabei darf der Text aber nicht das HTML Dokument zerstören.
Die Funktion heißen strcpy bzw. memcpy.

Oder Du benutzt c++:

Code: Alles auswählen

result = std::string( "<html><body>" ) + content + "</body></html>";
Das sind ... praktische Lösungen, keine performanten. ;)

Re: Etwas in char pointer einfügen?

Verfasst: Mi Jul 20, 2016 6:24 pm
von oenone
oder du benutzt gleich etwas für die Anforderungen passenderes, wie z.B. libxml2 :P