PDA

View Full Version : Da Stringa ad Array di Stringhe


dany8988
22-03-2012, 14:01
Salve ragazzi, allora espongo subito il mio problema.
Voglio realizzare un semplice programma che dato in input una stringa di lunghezza qualsiasi, quindi ho supposto ke sia una stringa tipo:
char*s=new char;
cin.getline(s,100);
In modo che legga anche gli spazi, e supponiamo che debba inserire:

CIAO IO SONO DANIELE

il programma mi deve realizzare un array di stringhe, quindi un puntatore a puntatore ad char del tipo:

char**A=new char*[numero di spazi+1];

proprio perchè il numero di spazi + 1 da il numero di parole nella stringa inserita in input e quindi la dimensione del nostro futuro array.
Continuando allochiamo le 4 stringhe che conterranno CIAO, IO, SONO, DANIELE. :
for(int i=0;i<4;i++){
A[i]=new char;

una volta fatto questo io devo implementare un codice che mi faccia una cosa del genere:

A[0]=CIAO;
A[1]=IO;
A[2]=SONO;
A[3]=DANIELE;

e quindi prendermi le parole prima di ogni spazio e fino alla fine.

Poi vabbè voglio implementare una classe stack che si piglià ste 4 parole e le mette una in ogni nodo ( questo è fattibile ).

Qualcuno potrebbe gentilmente spiegarmi come ottenere sto benedetto Array A di stringhe????

[Kendall]
22-03-2012, 19:41
Salve ragazzi, allora espongo subito il mio problema.
Voglio realizzare un semplice programma che dato in input una stringa di lunghezza qualsiasi, quindi ho supposto ke sia una stringa tipo:
char*s=new char;
cin.getline(s,100);
In modo che legga anche gli spazi, e supponiamo che debba inserire:

CIAO IO SONO DANIELE

il programma mi deve realizzare un array di stringhe, quindi un puntatore a puntatore ad char del tipo:

char**A=new char*[numero di spazi+1];

proprio perchè il numero di spazi + 1 da il numero di parole nella stringa inserita in input e quindi la dimensione del nostro futuro array.
Continuando allochiamo le 4 stringhe che conterranno CIAO, IO, SONO, DANIELE. :
for(int i=0;i<4;i++){
A[i]=new char;

una volta fatto questo io devo implementare un codice che mi faccia una cosa del genere:

A[0]=CIAO;
A[1]=IO;
A[2]=SONO;
A[3]=DANIELE;

e quindi prendermi le parole prima di ogni spazio e fino alla fine.

Poi vabbè voglio implementare una classe stack che si piglià ste 4 parole e le mette una in ogni nodo ( questo è fattibile ).

Qualcuno potrebbe gentilmente spiegarmi come ottenere sto benedetto Array A di stringhe????

Un link vale più di mille parole in certi casi: strtok (http://www.cplusplus.com/reference/clibrary/cstring/strtok)
Libreria standard string.h (cstring): il metodo ti permette di dividere in token la stringa, imponendo i delimitatori che vuoi tu. L'implementazione successiva nel tuo codice poi è immediata.