C-Strings auseinandernehmen
-
Hi
Ich bin schon den ganzen Tag verzeifelt am rumprogrammieren.
Also folgendes Problem, habe ich:
Ich lese eine HTML-Datei Zeile fuer Zeil aus
und will die ersten 10 Adressen der Links in c-strings speichern.
DIE http-adressen will ich in zwei Teile splitten.
Die Internet-adresse(z.B. c-plusplus.net) der Seite soll ins
array char addy[10][30] //eben [10] da es 10 Adresse hinterher seien sollen
und die genaue Adreese der html Datei(z.B.: /forum/posting-var-mode-is-newtopic-and-f-is-10.html)
soll ins Array char link[10][120]FILE *HTMLDATEI; char buffer[8000]; char * href; while(fgets(buffer, 8000, HTMLDATEI)) //lese Zeile fuer zeile { href = strstr(buffer, "a href="); // suche in jeder Zeile nah a href Tag if(href != 0 && id < 10) //wenn gefunden und noch keine 10 links { id++; ptrady = memchr (ptrady, '/', strlen(ptrady)); //suchen nach / fürs splitten der adresse if (ptrady!=NULL) { // und nun } }
nun weiß ich aber nicht wie ich die einzelnen Teile der jeweiligen Zeile in
neue c-strings kopieren kann, da ich ja nur die pointer der jweiligen stelle
herausbekomme.danke henrik
-
man: memcpy(3) und die Null-Terminierung nicht vergessen.
ungefähr so:
enum { ADDI_LENGTH = 100 }; //... char addi[ADDI_LENGTH]; //... if(length > ADDI_LENGTH-1) return; // EVIL! memcpy(addi, src, length); addi[length]='\0'; // 0 terminiert