ComponentiCome assegnare gli array 2-d l'uno all'altro?
ho una stringa, ad esempio
char block[4][256] = "";
e ho frase
char sentence[256] = "Bob walked his dog";
Ho anche un iteratore variabile
int pos = 0;
Quello che sto cercando di realizzare
sto cercando di assegnare ogni parola nella matrice sentence
nel 2-d matrice blocco block
in sequenza.
Per esempio,
Diciamo che ho questo codice (il mio write-up - non ha funzionato come avevo programmato)
for (int x=0; x < ((int)strlen(sentence)); x++)
{
if (sentence[x] == ' ') // not using strcmp at the moment to be more clear
{
++pos; // move to the next word after space
for (int y=0; y < pos; y++) // scan through the word
{
for (int z=0; z < x; z++) // add the word to the array
{
block[y][z] = sentence[z]; // assign the block (!!confusion here!!)
}
}
}
}
Come la vedo io
Per come la vedo avvicinandomi a questo problema, devo prima scansionare la frase fino a quando non trovo uno spazio ", un carattere. Dopo averlo incontrato devo ripetere la scansione della frase e iniziare ad aggiungere tutti i caratteri fino alla posizione di quello spazio vuoto "" nel primo segmento del mio blocco array block[y][z]
, z essendo l'iteratore nell'istruzione for precedente, e y la posizione + 1 per ogni spazio incontrato. Credo che il mio problema principale qui è capire come assegnare gli array 2-d. Se qualcuno vede un approccio migliore a questo problema mi piacerebbe sentirlo, grazie!
L'uscita Voglio
Dopo aver stampato il contenuto del block[x][256]
Voglio che ogni x per l'output ogni parola nella matrice che sto scansione per esempio. Se ho qualcosa di simile.
for (int a=0; a < 4; a++)
{
for (int b=0; b < strlen(block[a][]); b++)
{
printf("%s\n", block[a][b]);
}
}
Voglio l'output di essere:
block[0][]: Bob
block[1][]: walked
block[2][]: his
block[3][]: dog
Chiunque può aiutare a come posso affrontare questo problema? Grazie!
Ciò che è cmd qui ?? – Adarsh
A tale proposito - mi dispiace, ho rimosso quel pezzo di codice come era in considerazione di una parte precedente del mio progetto. – user3251225
Se è C++, perché non stai usando 'std :: string',' std :: vector ', così come' cout', ecc.? Inoltre, 'std :: istringstream' potrebbe essere usato per separare l'input in parole. In altre parole, il tuo problema potrebbe essere ridotto a poche righe di codice 'C++'. –
PaulMcKenzie