Ricerca in Array di char in C
Moderatore: Paolino
17 messaggi
• Pagina 2 di 2 • 1, 2
0
voti
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)
-
claudiocedrone
20,2k 4 7 9 - Master EY
- Messaggi: 14386
- Iscritto il: 18 gen 2012, 13:36
0
voti
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.
0
voti
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.
0
voti
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
2
voti
Modificato il titolo ma che faticaccia, è toccato farlo per ogni singolo post
"Non farei mai parte di un club che accettasse la mia iscrizione" (G. Marx)
-
claudiocedrone
20,2k 4 7 9 - Master EY
- Messaggi: 14386
- Iscritto il: 18 gen 2012, 13:36
0
voti
andre29 ha scritto:Allora ho fatto qualche prova, e sembra funzioni:
L'obbiettivo è stampare Testo2.
Io userei la strtok()
17 messaggi
• Pagina 2 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 8 ospiti