Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    34

    C/c++

    Salve a tutti, esiste un analogo della funzione StringTokenizer di Java in C++?
    Devo leggere un file di testo con righe di lunghezza variabile costituie da una stringa lunga 80 e poi un numero separati da uno spazio.
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    La prossima volta dai anche un titolo alla discussione...

    PS: StringTokenizer è una classe, non una funzione, in Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    34
    OOps, chiedo scusa, ma ho scritto il post fra una telefonata e l'altra! (Sarei sul lavoro)

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    34
    Grazie, però ho visto che c'è la funzione strtok()...

  6. #6
    Sì certo, ma con quella ti devi costruire tu il tokenizer, non c'è prestabilito.
    codice:
    class CppStringTokenizer {
    
    private:
       char *datastring;
       char *token;
       char *delimiters;
    
       bool firstToken;
       bool hasToken;
    
    public:
       CppStringTokenizer(const char *string, const char* delimiters);
       ~CppStringTokenizer();
       bool hasMoreToken() { return hasToken; }
       char* nextToken();
    
    };
    
    CppStringTokenizer::CppStringTokenizer(const char *string, const char *delimiters) {
    
       this->datastring = new char[ strlen( string ) + 1 ];
       this->delimiters = mew char[ strlen( delimiters ) + 1 ];
    
       firstToken = true;
       hasToken = true;
    
    }
    
    char* CppStringTokenizer::nextToken() {
    
       if(firstToken) {
    
          this->token = strtok(this->datastring, this->delimiter);
          firstToken = false;
    
       } else {
    
          this->token = strtok(NULL, this->delimiters);
    
       }
    
       if(this->token == NULL ) {
    
             hasToken = false;
    
       }
    
       return this->token;
    
    }
    
    CppStringTokenizer::~CppStringTokenizer() {
    
       delete[] this->datastring;
       delete[] this->delimiters;
    
    }
    Può andare ?

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    34
    Grazie, direi .... decisamente esausitivo!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.