PDA

View Full Version : [c++]string split


oettam190
11-08-2010, 15:32
ho scritto un programma nel quale l' utente deve inserire vari valori(1 o 0) che vengono inseriti in un array per evitare di obbligarlo ad inserirli 1 esiste una funzione che partendo da una stringa ti divide in un array i vari elementi?
esempio:l' utente inserisce 1011 e dopo la funzione viene fatto questo array:
array[0]=1
array[1]=0
array[2]=1
array[3]=1

sneeze
11-08-2010, 16:06
non conoscendo la sintassi del c++ ti direi di contare i caratteri costruire un nuovo array lungo quel che serve e riempirlo...
una cosa tipo...

string stringa = "1011";
int num = stringa.Lenght();
int[] Array = new int[num];
for(int i = 0;i<num;i++)
{
Array[i] = int.Parse(stringa[num]);
}

Non so se c++ veda le stringhe come array di caratteri implicitamente, se così non fosse dovresti convertirlo in array di char tu stesso oppure usare un substring tipo
Array[i] = stringa.Substring(num,1)

tuccio`
11-08-2010, 16:51
c_str()? :E

sneeze
11-08-2010, 17:33
ripeto non conosco il c++, ho solo cercato dare al nostro amico una traccia sulla quale iniziare.
Se tu fossi così gentile da rispondere in maniera comprensibile anche a chi non conosce un particolare linguaggio non potrebbe che giovarne l'intero forum.
Ad ogni modo grazie per la risposta.

cionci
12-08-2010, 08:40
La stringa è già un array...

sneeze
12-08-2010, 08:58
Non so se c++ veda le stringhe come array di caratteri implicitamente, se così non fosse ...[/CODE]

Infatti lo supponevo nel mio esempio e l'ho anche scritto.....
non conosco il c++ ripeto....
era solo una traccia.....

DanieleC88
12-08-2010, 09:58
Infatti lo supponevo nel mio esempio e l'ho anche scritto.....
non conosco il c++ ripeto....
era solo una traccia.....

Penso che cionci volesse rispondere all'autore del quesito... non te la prendere. :D

pabloski
12-08-2010, 10:20
Non capisco perchè ha creato una funzione per riempire un array. Le stringhe sia quelle di classe string che i char* sono array. Puoi fare ad esempio così


string alfa = "1011";
int num = alfa.length();

for (int i=0; i<num; i++) cout << alfa[i] << "\n";


Questo codice ti stampa tutti i caratteri contenuti nella stringa e l'accesso avviene tramite indice come per gli array.

sneeze
12-08-2010, 11:56
Non capisco perchè ha creato una funzione per riempire un array. Le stringhe sia quelle di classe string che i char* sono array

:D :D A volte mi sembra di non parlare Italiano..... bah..... sembra che ognuno voglia per forza aggiungere un pezzettino.....

oettam190
12-08-2010, 16:27
grazie mille a tutti:D