Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] da stringa ad array di interi...

    Ho una stringa

    codice:
    s = "1,2,3,4,5";
    e due problemini... :master:

    problema 1 : scomporre la stringa in array di stringhe per ottenere:
    codice:
    string array[] = {"1","2","3","4","5"}
    problema 2 : trasformare l'array di stinghe in array di interi... per ottenere:
    codice:
    int array[] = {1,2,3,4,5}
    thanks!


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma vuoi ottenere l' 1) per avere il 2) ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    yes

    Ma se c'e' un modo per passare direttamente dalla stringa... al (2) meglio!

    THANKS!

  4. #4

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ovviamente ... con questo

    codice:
        string::size_type lPos = s.find_first_not_of(",", 0);
        string::size_type pos  = s.find_first_of(",", lPos);
    
        while (string::npos != pos || string::npos != lPos)
        {
            int v = atoi(s.substr(lPos, pos - lPos).c_str());
            cout << "Valore intero " << v << endl;
    
            lPos = s.find_first_not_of(",", pos);
            pos = s.find_first_of(",", lPos);
        }
    ottieni i valori interi a partire dalla stringa s, ma li devi inserire tu nell'array ...

    Se non sai quanti sono i valori, allora ti serve un array dinamico.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Sono quasi alla conclusione ma...

    Originariamente inviato da oregon
    Ovviamente ... con questo

    codice:
        string::size_type lPos = s.find_first_not_of(",", 0);
        string::size_type pos  = s.find_first_of(",", lPos);
    
        while (string::npos != pos || string::npos != lPos)
        {
            int v = atoi(s.substr(lPos, pos - lPos).c_str());
            cout << "Valore intero " << v << endl;
    
            lPos = s.find_first_not_of(",", pos);
            pos = s.find_first_of(",", lPos);
        }
    ottieni i valori interi a partire dalla stringa s, ma li devi inserire tu nell'array ...

    Se non sai quanti sono i valori, allora ti serve un array dinamico.


    Dunque... ho provato così...


    codice:
    for (int w=0; w<vec.size(); w++) {
    
    s = vec[w];
    
    
    
    cin.get();
    
    cout << "\n\n";
    
    cout << "ADESSO s E' ? ";
    cout << s;
    
    //TENTATIVO II ---------------------------------------------------
    
    string::size_type lPos = s.find_first_not_of(",", 0);
        string::size_type pos  = s.find_first_of(",", lPos);
    
        while (string::npos != pos || string::npos != lPos)
        {
            int v = atoi(s.substr(lPos, pos - lPos).c_str());
            
            cout << "\n\n";
            cout << "Valore intero " << v << endl;
            
           gruppovoluto.push_back(v);  //inserisco i valori nel vector...
    
            lPos = s.find_first_not_of(",", pos);
            pos = s.find_first_of(",", lPos);
        }
    
    //---------------------------------------------------------fine tentativo II
    
    cout << "ADESSO GRUPPOVOLUTO E' COMPOSTO DA? ";
    cout << gruppovoluto[0];
    cout << ",";
    cout << gruppovoluto[1];
    cout << ",";
    cout << gruppovoluto[2];
    cout << ",";
    cout << gruppovoluto[3];
    cout << ",";
    cout << gruppovoluto[4];
    
    
    }
    Perchè i valori di gruppovoluto mi restano sempre uguali nonostante il for e soprattutto la stringa s che cambia regolarmente...?

    GRAZIE mille comunque!


  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Perchè tutti gli elementi si aggiungono e tu vedi sempre i primi, se non svuoti il vector ad ogni giro.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    l'avevo supposto anche io ma...

    avevo sbagliato a posizionare il gruppovoluto.clear()

    GRAZIEEE


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 © 2024 vBulletin Solutions, Inc. All rights reserved.