Stringproblem



  • strtok hab ich schon versucht geht nicht da es nur bis zur ersten endekennung lest! sscanf würde dann evtl. nur gehn wenn der string schon zerlegt ist!

    hmm wird mir wohl nichts anders übrig bleiben als den string von hand byte für byte zu zerlegen...

    hab schon alles ausprobiert was ich so gewusst hab



  • Versuchs doch mal mit boost::tokenizer.

    www.boost.org

    mfg JJ



  • strtok hab ich schon versucht geht nicht da es nur bis zur ersten endekennung lest!

    quatsch das funzt wunderbar...
    das msdn-beispiel kann man ja schon fast 1:1 übernehmen

    #include <string.h>
    #include <stdio.h>
    
    char string[] = "A string\tof ,,tokens\nand some  more tokens";
    char seps[]   = " ,\t\n";
    char *token;
    
    void main( void )
    {
       printf( "%s\n\nTokens:\n", string );
       /* Establish string and get the first token: */
       token = strtok( string, seps );
       while( token != NULL )
       {
          /* While there are tokens in "string" */
          printf( " %s\n", token );
          /* Get next token: */
          token = strtok( NULL, seps );
       }
    }
    


  • Was du hier als Endkennung bezeichnest ist ein normales Leerzeichen ...
    Da funktioniert CString doch wunderbar mit ...



  • strtok geht nicht!

    die endekennung is ein \0 da macht dann strtok nicht weiter!



  • die endekennung is ein \0 da macht dann strtok nicht weiter!
    naja wie überraschend... genau dieses zeichen terminiert ja auch nen string...
    vielleicht solltest du dir da was anderes als trennzeichen überlegen als ausgerechnet das Nullbyte...



  • Mich0r schrieb:

    1. Element: 0x30 '0'
    2. Element: 0x30 '0'
    3. Element: 0x20 ' ' <- Endekennung
    4. Element: 0x41 'A'
    5. Element: 0x34 '4'
    6. Element: 0x20 ' ' <- Endekennung
    7. Element: 0x30 '0'

    WO bitte ist hier ein \0 ??



  • Hi,

    die von dir verwendeten Trennzeichen sind, wie dEUs schon sagte, keine '\0'en.

    Wenn du dich trotzdem entscheiden solltest '\0' als Trennzeichen zu verwenden, solltest du einmal bei Codeguru/Codeprojekt vorbeischauen. In einem dieser Archive habe ich einmal eine Klasse gefunden, die derartige Strings verarbeiten kann.
    Allerdings würde ich dir ein anderes Trennzeichen empfehlen.

    Grüße Rapha



  • Hi,

    die von dir verwendeten Trennzeichen sind, wie dEUs schon sagte, keine '\0'en.

    Wenn du dich trotzdem entscheiden solltest '\0' als Trennzeichen zu verwenden, solltest du einmal bei Codeguru/Codeprojekt vorbeischauen. In einem dieser Archive habe ich einmal eine Klasse gefunden, die derartige Strings verarbeiten kann.
    Allerdings würde ich dir ein anderes Trennzeichen empfehlen.

    Grüße Rapha



  • Dieser verdammte Mediawaysbackbone 😡
    Mein IE spinnt total


Anmelden zum Antworten