Oppure

Loading
20/07/12 10:14
Ma lo devi fare proprio in C o anche in C++ ?
21/07/12 15:45
Dice
Lo devo fare solo in C; ditemi una cosa: adesso ho bisogno di fare questa cosa:

io ho un array; di questo array voglio prendere solo alcuni elementi e metterli in un altro array; io avevo pensato di fare una cosa del genere:

array iniziale: exoyez

io addesso voglio prendere solo le "e" e le "o" e metterle in un altro array

for(i=0; i != 'Lo devo fare solo in C; ditemi una cosa: adesso ho bisogno di fare questa cosa:

io ho un array; di questo array voglio prendere solo alcuni elementi e metterli in un altro array; io avevo pensato di fare una cosa del genere:

array iniziale: exoyez

io addesso voglio prendere solo le "e" e le "o" e metterle in un altro array

for(i=0; i != '{parsed_message}'; i++)
if((a[i] == 'e') || (a[i] == 'o'))
/*prendi e metti in un altro array*/
for(j=0; j!= '{parsed_message}'; j++)
b[j]==a[i];

Dite che può andare bene ?'; i++)
if((a[i] == 'e') || (a[i] == 'o'))
/*prendi e metti in un altro array*/
for(j=0; j!= 'Lo devo fare solo in C; ditemi una cosa: adesso ho bisogno di fare questa cosa:

io ho un array; di questo array voglio prendere solo alcuni elementi e metterli in un altro array; io avevo pensato di fare una cosa del genere:

array iniziale: exoyez

io addesso voglio prendere solo le "e" e le "o" e metterle in un altro array

for(i=0; i != '{parsed_message}'; i++)
if((a[i] == 'e') || (a[i] == 'o'))
/*prendi e metti in un altro array*/
for(j=0; j!= '{parsed_message}'; j++)
b[j]==a[i];

Dite che può andare bene ?'; j++)
b[j]==a[i];

Dite che può andare bene ?
aaa
21/07/12 17:00
orion3
se ho capito bene ciò che devi fare, la condizione d'uscita dei cicli for mi sembrano sbagliate perchè ci dovresti mettere la lunghezza del primo vettore e poi il secondo ciclo è superfluo perchè puoi metterci una variabile,come indice del secondo array, che viene incrementata ogni volta che si entra nell'if...
Ultima modifica effettuata da orion3 21/07/12 17:01
aaa
21/07/12 17:08
Dice
non ho ben capito :(
mi potresti scrivere il pezzo di codice corretto ?
aaa
21/07/12 17:31
orion3
premetto che non so molto di C però se non sbaglio c'è la funzione sizeof() che restitutisce la lunghezza di array statici, quindi il codice dovrebbe essere:
j = 0; //inizializzo l'indice del secondo vettore
for(i=0; i != sizeof(a); i++){
    if((a[i] == 'e') || (a[i] == 'o')) {
             b[j]=a[i]; //metto l'elemento del vettore a nel vettore b
             j++; //incremento indice secondo array
      }
}

dovrebbe essere così, informati solo su come funziona sizeof() o se esiste qualche altra funzione che ti permetta di sapere la lunghezza di un vettore...
P.S. ogni lettera della tua parola occupa una posizione nell'array ? perchè se non è così dovresti gestire una stringa
Ultima modifica effettuata da orion3 21/07/12 17:39
aaa
21/07/12 23:11
Dice
Postato originariamente da pierotofy:

Devi solo eliminare i primi due caratteri oppure cercare all'interno della stringa per la presenza di "ex"?

Per i primi due caratteri potresti semplicemente avanzare il puntatore di due...

char *str = "exoyezP(x,y,z)";
char *truncated = (str + 2); // "oyezP(x,y,z)"


Ei ei ei :)

grazie mille !!
La cosa che mi hai detto, funziona,e ti ringrazio molte...

l'unica cosa è che... l'eliminazione di elementi, oltre che nei primi 2 elementi, potrebbe avvenire anche in altre parti...

cosa mi consigli ?
aaa
21/07/12 23:14
Dice
Postato originariamente da orion3:

premetto che non so molto di C però se non sbaglio c'è la funzione sizeof() che restitutisce la lunghezza di array statici, quindi il codice dovrebbe essere:
j = 0; //inizializzo l'indice del secondo vettore
for(i=0; i != sizeof(a); i++){
    if((a[i] == 'e') || (a[i] == 'o')) {
             b[j]=a[i]; //metto l'elemento del vettore a nel vettore b
             j++; //incremento indice secondo array
      }
}

dovrebbe essere così, informati solo su come funziona sizeof() o se esiste qualche altra funzione che ti permetta di sapere la lunghezza di un vettore...
P.S. ogni lettera della tua parola occupa una posizione nell'array ? perchè se non è così dovresti gestire una stringa



Due cose:
1) visto che sei alle prime armi, ti informo subito che esiste la funzione strlen, che mi dice quanto è lunga la stringa

2)nella riga di codice che hai messo dentro all'if: b[j]=a[i] così facendo missa che non va bene, perchè visto che non incrementi mai l'indice j, così facendo dovrebbe sostituire sempre lo stesso valore

o sbaglio ? non ne sono sicurissimo neanch'io del punto 2
aaa
22/07/12 22:04
Ultimo
Postato originariamente da Dice:

Postato originariamente da orion3:

premetto che non so molto di C però se non sbaglio c'è la funzione sizeof() che restitutisce la lunghezza di array statici, quindi il codice dovrebbe essere:
j = 0; //inizializzo l'indice del secondo vettore
for(i=0; i != sizeof(a); i++){
    if((a[i] == 'e') || (a[i] == 'o')) {
             b[j]=a[i]; //metto l'elemento del vettore a nel vettore b
             j++; //incremento indice secondo array
      }
}

dovrebbe essere così, informati solo su come funziona sizeof() o se esiste qualche altra funzione che ti permetta di sapere la lunghezza di un vettore...
P.S. ogni lettera della tua parola occupa una posizione nell'array ? perchè se non è così dovresti gestire una stringa



Due cose:
1) visto che sei alle prime armi, ti informo subito che esiste la funzione strlen, che mi dice quanto è lunga la stringa

2)nella riga di codice che hai messo dentro all'if: b[j]=a[i] così facendo missa che non va bene, perchè visto che non incrementi mai l'indice j, così facendo dovrebbe sostituire sempre lo stesso valore

o sbaglio ? non ne sono sicurissimo neanch'io del punto 2


Non hai visto il j++ ?
If ok Then GOTO Avanza else GOTO Inizia