Oppure

Loading
06/11/09 13:52
NewAge
devo trasformare un array di interi da 0 a 1 in una stringa, ma non so come fare:
int numeri[5];

numeri[0]=1;
numeri[1]=1;
numeri[2]=0;
numeri[3]=1;
numeri[4]=0;

char parola[5];

parola[]=numeri[];

if(parola[]=="11111"){

//il mio scopo

}

aaa
06/11/09 14:49
Guglielmo
Postato originariamente da NewAge:

devo trasformare un array di interi da 0 a 1 in una stringa, ma non so come fare:
int numeri[5];

numeri[0]=1;
numeri[1]=1;
numeri[2]=0;
numeri[3]=1;
numeri[4]=0;

char parola[5];

parola[]=numeri[];

if(parola[]=="11111"){

//il mio scopo

}


Hai fatto un po di errori. Comunque basta un ciclo.
...
const int N = 5;
int numeri[N] = {1,1,0,1,0};
char parola[N+1];
int i;

for (i = 0; i < N; i++) {
    if (numeri[i] == 1) {
        parola[i] = '1';
    } else {
        parola[i] = '0';
    }
}
parola[i] = '
Postato originariamente da NewAge:

devo trasformare un array di interi da 0 a 1 in una stringa, ma non so come fare:
int numeri[5];

numeri[0]=1;
numeri[1]=1;
numeri[2]=0;
numeri[3]=1;
numeri[4]=0;

char parola[5];

parola[]=numeri[];

if(parola[]=="11111"){

//il mio scopo

}


Hai fatto un po di errori. Comunque basta un ciclo.
...
const int N = 5;
int numeri[N] = {1,1,0,1,0};
char parola[N+1];
int i;

for (i = 0; i < N; i++) {
    if (numeri[i] == 1) {
        parola[i] = '1';
    } else {
        parola[i] = '0';
    }
}
parola[i] = '{parsed_message}';
...
'; ...
aaa
06/11/09 15:54
ingMark
ricorda che in c le variabili vanno dichiarate tutte all'inizio, ma cosa più importante il c non permette di copiare un vettore in un altro vettore.
devi usare un ciclo come ti ha mostrato Guglielmo :k:
Ultima modifica effettuata da ingMark 06/11/09 15:55
aaa
06/11/09 20:48
NewAge
per farlo diventare funzione basta
const int N = 5; 
int numeri[5] = {1,1,0,1,0}; 
char parola[5+1]; 
int i; 


char converti( caratteri){
     
     for (i = 0; i < N; i++) { 
         if (caratteri[i] == 1) { 
            parola[i] = '1'; 
         } else { 
            parola[i] = '0'; 
         } 
     } 
     return parola;
}

aaa
06/11/09 21:03
ingMark
Postato originariamente da NewAge:

per farlo diventare funzione basta
const int N = 5; 
int numeri[5] = {1,1,0,1,0}; 
char parola[5+1]; 
int i; 


char converti( caratteri){
     
     for (i = 0; i < N; i++) { 
         if (caratteri[i] == 1) { 
            parola[i] = '1'; 
         } else { 
            parola[i] = '0'; 
         } 
     } 
     return parola;
}



Attento!
Stai facendo degli errori abbastanza gravi che stanno alla base del c :yup:
Se non ricordo male tu vieni dalla programmazione php, quindi all'inizio è normale, ma non sottovalutare la parte teorica del c :k:

Il prototipo della funzione
char converti( caratteri)

Prima di tutto va messo fuori dal main (insieme a tutta la funzione).
Inoltre la dichiarazione corretta è
tipo nome_funzione(tipo nome_parametro1, etc);
quindi sarebbe
char converti(char caratteri[]) /*oppure char converti(char *caratteri) se sai cosa
                                                  sono i puntatori*/ 

Ricorda che in c puoi omettere al massimo il nome dei parametri ma MAI il tipo!:nono:

Inoltre una funzione definita di tipo char non può ritornare un vettore (che è un char*)
Quindi il prototipo corretto, se vuoi strutturare in questo modo la funzione sarebbe
char *converti(char caratteri[])


Ultimo ma non per importanza, attento alle variabili.
Se vuoi usare la funzione cosi, tutte le variabili che hai dichiarato prima devono essere GLOBALI, quelle LOCALI (dichiarate nel main o nelle altre funzioni) non esistono fuori dalle loro funzioni (si chiama scope delle variabili). :k:

EDIT:
Nel tuo caso cmq la funzione deve essere di tipo void visto che usi tutte variabili globali.
La funzione agisce direttamente sul vettore parola, quindi non devi ritornare nulla
Ultima modifica effettuata da ingMark 06/11/09 21:08
aaa
14/11/09 10:12
eddiewrc
Postato originariamente da ingMark:

ricorda che in c le variabili vanno dichiarate tutte all'inizio, ma cosa più importante il c non permette di copiare un vettore in un altro vettore.
devi usare un ciclo come ti ha mostrato Guglielmo :k:


char a[LEN_A];
char b[LEN_B];
....
memcp(b, a, sizeof(a));

cosìsi copiano gli array.
aaa