Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Array, array e ancora array...
Forum - C/C++ - Array, array e ancora array...

Avatar
edo42 (Member)
Pro


Messaggi: 102
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 18:00
Venerdì, 02/10/2009
Ho un problema che mi sembra valga la pena di postare:
Ho un array multidimensionale, mettiamo sia ciao[2][3] e un altro array normale che si chiama ciao2[3]. Come posso fare a copiare l'array ciao[1] dentro l'arrau ciao2? In pratica voglio prendere un array contenuto dentro il multidimensionale e copiarlo dentro un'altro.

Grazie in anticipo per tutte le risposte.


Se passi a mac da win non sai cosa ti trovi, ma stai sicuro che non tornerai mai indietro
PM Quote
Avatar
ingMark (Ex-Member)
Pro


Messaggi: 176
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 18:18
Venerdì, 02/10/2009
Se ti può aiutare a comprendere, i vettori a più dimensioni vedili come vettori di vettori.

Quella che hai tu è una matrice (il tuo array bidimesionale).
Quindi tornando alla notazione di prima (vettore di vettori) è come se in ogni cella del tuo vettore ciao[] ci fosse un altro vettore.

Quindi una volta che hai capito questo copiare il vettore in un altro vettore diventà una banalità
ti basta un semplice ciclo for.
Una volta che hai scelto quale riga della matrice vuoi copiare

Codice sorgente - presumibilmente Plain Text

  1. for(i = 0; i< lung_vett; i++)
  2.     ciao2[i] = ciao[riga_che_hai_scelto][i];


:k:


Mamma diceva sempre che stupido è chi lo stupido fa.
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 18:28
Venerdì, 02/10/2009
tieni presente che l'array multidimensionale funziona per righe e per colonne mentre l'array classico solo per righe

immagina l'array ciao[2][3] (ponendo che sia int) completato cosi:

1 5
4 8
6 3

le cose che puoi fare sono 2:
o copi l'intero contenuto in modo sequenziale nel vettore ciao2 che deve essere di dimensione 6 e quindi verrebbe cosi:
1 5 4 8 6 3
oppure copi una sola riga nel vettore ciao2 e quindi assumerà questi valori:
1 5


nel primo caso io lavorerei cosi:

Codice sorgente - presumibilmente C++

  1. int ciao[2][3];
  2. int ciao2[6];
  3. int i,j;
  4. int c=0;
  5.  
  6. //  carichi il vettore ciao
  7. ...
  8. //
  9. for(i=0;i<3;i++)
  10.     {
  11.      for(j=0;j<2;j++)
  12.        {
  13.         ciao2[c]=ciao[i][j];
  14.         c++;
  15.        }
  16.      }



mentre nel secondo caso lavorerei cosi:

Codice sorgente - presumibilmente C/C++

  1. int ciao[2][3];
  2. int ciao2[2];
  3. int i;
  4.  
  5. //  carichi il vettore ciao
  6. ...
  7. //
  8.  
  9. for(i=0;i<2;i++)
  10.     {
  11.      ciao2[i]=ciao[0][i];
  12.      }



spero di esser stato utile e di aver centrato il problema


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
edo42 (Member)
Pro


Messaggi: 102
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 19:21
Venerdì, 02/10/2009
Grazie molte ancora; credevo fosse una cosa molto più difficile...


Se passi a mac da win non sai cosa ti trovi, ma stai sicuro che non tornerai mai indietro
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 19:35
Venerdì, 02/10/2009
nulla ;)


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote