Ricerca in Array di char in C
Moderatore:
Paolino
L'unica osservazione è che, se non vado errato, il titolo modificato a posteriori (ovvero non prima della pubblicazione del secondo post) apparirà solo nei post ma il titolo del thread rimane invariato.
"Non farei mai parte di un club che accettasse la mia iscrizione" (G. Marx)
GioArca67 ha scritto:Mi sembra opportuno modificare il titolo in qualcosa tipo
"Ricerca in Array di char in C"
affinché sia più comprensibile
osservazioni?
Si, ho provato ma non ci sono riuscito. Non so se qualche moderatore può farlo.
Allora ho fatto qualche prova, e sembra funzioni:
L'obbiettivo è stampare Testo2.
Quello che a me interessa capire non è tanto il come fare il ciclo for, ma è cosa e come gli devo dare alla funzione, cioè l'indirizzo.
L'obbiettivo è stampare Testo2.
Codice: Seleziona tutto
char RXbuffer [30]="prova,$,testo_1,Testo2";
char timestep[7];
void get_timestep (char RXbuffer[]);
Codice: Seleziona tutto
int main() {
get_timestep(&RXbuffer[0]); // dovrebbe essere l'indirizzo
printf(timestep);
return 0;
}
Codice: Seleziona tutto
void get_timestep (char *){
int i,n=0;
bool v=false;
for (i=0;i<DIM_BUFFER;i++) {
if (RXbuffer[i]='$') {
i=i+6;
for (n=0;n<7;n++) {
i++;
timestep[n]=RXbuffer[i];
printf("\n");
}
break;
}
}
}
Quello che a me interessa capire non è tanto il come fare il ciclo for, ma è cosa e come gli devo dare alla funzione, cioè l'indirizzo.
djnz ha scritto:tra l'altro, la condizione:Codice: Seleziona tutto
RXbuffer[i]=="$"
dovrebbe essere:Codice: Seleziona tutto
RXbuffer[i]=='$'
Poi, ma questo è solo "design", il buffer passato come argomento, mentre l'array del risultato acceduto come variabile globale?
Si potrebbe fare così (a memoria, non testato):Codice: Seleziona tutto
#define DIM_BUFFER 100
char RXbuffer [DIM_BUFFER];
char array[7];Codice: Seleziona tutto
bool get_array() {
int i;
for (i=0; i<(DIM_BUFFER-7); i++)
if (RXbuffer[i] == '$') {
memcpy(array, RXbuffer+i+1, 7);
return 1;
}
return 0;
}
Da usare con:Codice: Seleziona tutto
if (get_array()) { ... }
Grazie, adesso provo questa soluzione






