Vettori di stringhe in C++

di il
11 risposte

Vettori di stringhe in C++

Ciao a tutti.

Ho letto che il C++, permette la gestione delle stringhe, in maniera più efficace rispetto al C.
Ma cercando sul Web, non ho trovato (o non sono riuscito a trovare), qualche esempio di vettori di stringhe. Conoscete qualche link dove l'argomento è trattato in maniera esauriente?
Inoltre vorrei sapere se è possibile inizializzare un vettore di stringhe in C++, in questo modo:
Es:
string SETTIMANA[7]=("Lunedi",Martedi","Mercoledi","Giovedi","Venerdi","Sabato","Domenica");
Ripeto: è solo un esempio, per cui correggetemi pure.

Grazie a chi risponderà.

11 Risposte

  • Re: Vettori di stringhe in C++

    Se vuoi imparare a programmare in C++ non basarti su quello che trovi sul web per due motivi. Non sai esattamente cosa cercare e non sai se quello che hai trovato è quello che ti serve.

    Ti è necessario un libro. Un libro sul linguaggio da seguire passo passo.
    Ne esistono molti in libreria.

    Le stringhe in C++ sono oggetti di classe string.
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    e quindi
    string settimana[] = {"Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato","Domenica"};
  • Re: Vettori di stringhe in C++

    Grazie Oregon.

    E' già da un pò che studio il C++ (H. Schildt: " Linguaggio C++", Deitel & Deitel: " Fondamenti di programmazione C++") più un altro manuale che uso più che altro come "prontuario".
    Mi sto cimentando in un mio programma per un uso molto specifico e purtroppo, nei libri sopra elencati, l'argomento array di stringhe non è trattato in maniera approfondita in quanto ne danno una spiegazione molto generale. Ora mi trovo in uno stadio dell'apprendimento dove so cosa fare ma non so come farle o perlomeno non ho conferme, di come realizzarle.
    Secondo te " Thinking in C++" è un testo esauriente"?
    Ciao.
  • Re: Vettori di stringhe in C++

    La Bibbia del C++ è , per il semplice motivo che l'autore è lo stesso che ha inventato il C++.
    Comunque sia Thinking in C++ dovrebbe essere ben fatto da quello che ho sentito, anche se la Bibbia rimane un must have per qualsiasi programmatore C++, al pari del K&R per il C.
  • Re: Vettori di stringhe in C++

    Light ha scritto:


    La Bibbia del C++ è , per il semplice motivo che l'autore è lo stesso che ha inventato il C++.
    Comunque sia Thinking in C++ dovrebbe essere ben fatto da quello che ho sentito, anche se la Bibbia rimane un must have per qualsiasi programmatore C++, al pari del K&R per il C.
    Sei rimasto un po' indietro

    La versione piu' aggiornata, che comprende il C++11, e':

  • Re: Vettori di stringhe in C++

    Ciao Migliorabile.

    Hai ragione, purtroppo adesso non posso spendere tanti soldi.
  • Re: Vettori di stringhe in C++

    string settimana[] = {"Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato","Domenica"};
    [/quote]

    Oregon, come mai se la utilizzo per inizializzare un vettore membro di una classe, associato ad un oggetto, il compilatore mi da questo errore:...error C2059: errore di sintassi: ']'
    errore di sintassi: ';' mancante prima di '{'
    error C2143: errore di sintassi: ';' mancante prima di '}'....
  • Re: Vettori di stringhe in C++

    E' un errore del compilatore... a me lo fa compilare con mingw e funziona correttamente , però se provo a vedere i valori nella stringa in debug ,con il whatches di CodeBlocks, si impalla il debugger gdb ... bah

    Comunque http://msdn.microsoft.com/it-it/library/t8xe60cf.asp
    http://msdn.microsoft.com/it-it/library/0afb82ta.asp
    Anche se non ci ho capito nulla...
  • Re: Vettori di stringhe in C++

    Quel tipo di inizializzazione in una classe non era consentito prima dello standard C++11.

    Ma puoi usare un array statico, così
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class CTest
    {
    public:
    	CTest() { m_day=0; }
    
    	string GetDay() { return CTest::m_weekd[m_day]; }
    
    private:
    	int m_day;
    	static const string m_weekd[];
    };
    
    const string CTest::m_weekd[] = {"Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato","Domenica"};
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	CTest obj;
    
    	cout << obj.GetDay() << endl;
    
    	return 0;
    }
    
  • Re: Vettori di stringhe in C++

    Grazie Oregon,
    ho visto adesso la tua risposta e ti ringrazio per l'impegno che hai messo nel trovare la soluzione.
    Comunque, alla fine, è quello che ho fatto: classe con vettori di stringa, come membri e poi ho inizializzato i vettori all'esterno della classe, in modo statico, anche perchè non ho molta esperienza con i puntatori.
    Scusami se ne approfitto per farti/vi una domanda:
    sto sviluppando un programma che deve gestire 9 squadre di operai,che si alternano in un'azienda con dei turni, ognuna delle quali è composta da 5 squadre, più piccole, ognuna con compiti diversi. La domanda però è semplice:
    è normale dover gestire tanti vettori stringa( i nomi degli operai) e quindi avere per forza di cosa un programma con centinaia di linee di codice?
  • Re: Vettori di stringhe in C++

    Se lo devi fare per "didattica" okay, ma se ti serve per lavoro dovresti utilizzare un altro linguaggio e un DB.
  • Re: Vettori di stringhe in C++

    Devo dare l'esame di Fondamenti II e voglio portare questo programma come esercizio.
    Appena supererò l'esame (spero presto) inizierò a utilizzare il C++ anche per lavoro...spero.
Devi accedere o registrarti per scrivere nel forum
11 risposte