[C/C++] einfaches script mit strchr() und strtok()

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von myth2806, 23. Oktober 2006 .

Schlagworte:
  1. 23. Oktober 2006
    einfaches script mit strchr() und strtok()

    Hi leutz,

    also ich habe folgendes kleines script zum testen gebaut nur leider funktioniert es nicht. als Ausgabe bekomme ich nur den hostnamen (wenn als argv zb "google.de/muh/index.html" angegeben ist) angezeigt aber der path bleibt leer.

    Code:
    char* string = argv[1];
    char* path = strchr(string, (int)'/');
    char* host = strtok(string, "/");
    printf ("host: %s\npath:%s\n", host,path);
    
    hoffe einer von euch hat ne idee wie es geht. wenn ich nämlich nur den path auslese und ihn einzelnd ausgebe dann funktionierts.

    greez myth
     
  2. 23. Oktober 2006
    AW: einfaches script mit strchr() und strtok()

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define BUF 256
    
    int main(int argc, char *argv[])
    {
     char host[BUF], path[BUF];
     int i, len;
     
     len = strlen(argv[1]); // Speichert die Laenge des Strings
     
     for(i=0;i<len;i++) 
     {
     if(argv[1][i] == '/')
     {
     host[i]='\0';
     break; 
     } 
     host[i]=argv[1][i]; // Liest solange ein bis das Zeichen '/' vorkommt,
     } // also dein Pfad
     
     printf("host: %s\n",host); 
     
     snprintf(path, BUF, "%s", strstr(argv[1],"/")); 
     printf("path: %s\n",path); 
     
     
     return 0; 
    }
    
    Hier hast du etwas Code und genuegend Kommentare.
    So viel gibt es da ja nicht zu erklaeren, man muss nur wissen wie man die
    Funktionen nutzt ;-)
     
  3. 24. Oktober 2006
    AW: einfaches script mit strchr() und strtok()

    Hi,

    oder mit strtok:

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX_BUF 1024
    
    int main(int argc, char **argv)
    {
     unsigned int nr_of_chars = 3; // muesstest du ausrechnen
     char result[nr_of_chars][MAX_BUF]; // Array, in dem alles gespeichert wird
    
     char *ptr;
     unsigned int now = 0;
     int tmp = 1;
    
     for (tmp = 1; tmp < argc; tmp++)
     {
     ptr = strtok(argv[tmp],"/"); // splitten
     while (ptr != NULL)
     {
     strncpy(result[now],ptr,MAX_BUF - 1); // reinkopieren
     now++;
     ptr = strtok(NULL,"/");
     }
     }
    
    return 0;
    }
    Mfg,

    Kolazomai
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.