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
    

Anmelden zum Antworten