Strtok für string gesucht?



  • strtok gibts ja für char aber gibts das auch für strings? also statt char[] will ich das für strings machen hab da leider nix gefunden?

    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char str[] ="This is a sample string,just testing.";  //-> sollte string ?sein?
      char * pch;
      printf ("Splitting string \"%s\" in tokens:\n",str);
      pch = strtok (str," ");
      while (pch != NULL)
      {
        printf ("%s\n",pch);
        pch = strtok (NULL, " ,.");
      }
      return 0;
    }
    


  • du könntest es selber recht einfach realisieren, z.b. indem du alle vorkommen des tokens merkst, und dann substrings entsprechend dieser offsets erstellst. die aber nach char ** zu bekommen wird nicht ganz einfach, nicht um sonst benutzt man die string klasse, die einem den ganzen speichermist vom hals hält



  • Schau dir mal boost::tokenizer an.



  • boa boost:u tokenizer das ist ja psycho da muckt mein visual??
    #include<boost/tokenizer.hpp> -> fatal error C1083: Include-Datei kann nicht geöffnet werden: 'boost/tokenizer.hpp': No such file or directory

    die aber nach char ** zu bekommen

    ich will das ja nicht nach char bekommen? ich habe einen string in dem das drinnen steht string bla ="23,23,23,23"; jetzt hab ich mir gedacht ich könnte den string irgendwie teilen und dann formatiert mit sscanf die zahlen auslesen das funzt im oberen bsp auch mit sscanf hab ich probiert nur hab ich eben alles in einem string und da gibts den strtok nicht ? und dann könnte ich ja auch etwas kompliziertere strings teilen u formatiert auslesen zb {{23,23}}{{243,243}}{{2,3}} die in einzelteile teilen {{2,3}}-> so und dann mit sscanf auslesen?



  • Downset schrieb:

    No such file or directory

    Das heißt dann wohl, daß entweder Boost nicht richtig [gar nicht?] installiert ist, oder der Pfad falsch angegeben wurde ...



  • ???versteh ich nicht?



  • Downset:

    Ganz einfach du musst dem VC++ sagen das er in dem include verzeichniss (z.B. (bei mir "C:\Boost\include\boost-1_31") nach gucken muss

    wenn du nu z.B. C:\Boost\include\boost-1_31\boost draus machst, findet er <boost\tokenizer.hpp> auch net, weil es für ihn dann nur <tokenizer.hpp> ist.
    usw.

    MfG


Anmelden zum Antworten