ARRAY STRINGA

di il
15 risposte

ARRAY STRINGA

Buonasera vorrei sapere una cosa: uso un ambiente di sviluppo C per microprocessori PIC che si chiama MPLABX; se ho capito bene utilizza un C99; devo manipolare delle stringhe, perchè le ricevo da un dispositivo e, in base a quello, devo trasmetterne altre; come faccio a modificare un array che ad esempio contiene la stringa ricevuta (in 8 bit) e modificare il suo valore per aggiungere altri caratteri? Non trovo una documentazione che spieghi questo

15 Risposte

  • Re: ARRAY STRINGA

    Non ho capito che devi fare ma la domanda principale è tu conosci il C?
  • Re: ARRAY STRINGA

    Come ho scritto nel messaggio, lo conosco ma in forma ridotta perché per scrivere firmware per microcontrollori si usano meno istruzioni, ad esempio non capita mai che devi usare le stringhe; si manipolano sempre numeri
  • Re: ARRAY STRINGA

    Anch'io ho usato mplab e il c per i PIC e le stringhe le ho usate.

    Che devi fare esattamente?

    Quale versione di C usi di preciso? Per PIC a 8 bit o a 32 bit?
  • Re: ARRAY STRINGA

    Credo che mplab usi il c99 e devo usarlo per i pic a 8 bit. Devo immagazzinare un messaggio ricevuto in caratteri stringa tramite la comunicazione seriale, scompattarlo perché mi servono solo alcuni caratteri ricevuti e, successivamente creare un Array con la stringa fa trasmettere.
  • Re: ARRAY STRINGA

    Non mi riferivo allo standard ma alla famiglia target del compilatore.

    Comunque, puoi usare gli array di char esattamente come faresti in C, dato che sai programmare in C. Ad ogni elemento dell'array accedi con un indice ad esempio s[ix].

    Non vedo particolari problemi a meno che ti non ne abbia di base con il C.
    A questo punto scendi nel dettagli e mostra il codice che hai scritto in modo da darti qualche suggerimento su cosa fare.
  • Re: ARRAY STRINGA

    Ma diciamo che ho imparato da solo e con una documentazione trovataqua e là quindi fino ad ora mi sono aggiustato. Lo standard è c99 e il compilatore che uso è il xc8 2.10. faccio un esempio: a[30]="ciao come stai"; la variabile è una unsigned char
    In questo caso mi da errore forse perché è sovradimensionata? Ho bisogno che sia più grande l'array perché dovrò caricare più caratteri nel corso del programma
  • Re: ARRAY STRINGA

    Ok xc8 ... era quello che volevo sapere.
    a[30]="ciao come stai";
    No, non si usano così le stringhe in C, scusa ma dovresti rivedere e approfondire l'argomento prima di scrivere codice per dei micro in C.

    Ti indico un paio di righe per quello che hai scritto prima (devi usare la funzione strcpy) ma in effetti ti rimando ad un qualsiasi libro di C
    
    char s[30];
    
    strcpy(s, "ciao come stai");
    
  • Re: ARRAY STRINGA

    Un libro ce l'ho infatti ho fatto alcune prove ed è così che ho scoperto lo standard del xc8; ho provato a scrivere il comando che concatena le variabili ma non lo accetta. Comunque stasera proverò a fare prove sulla tua dritta e ti terrò aggiornato. Grazie mille
  • Re: ARRAY STRINGA

    Quale comando che concatena?
  • Re: ARRAY STRINGA

    Non me lo ricordo a memoria e in questo momento non sono davanti al pc; comunque finisce con cat()
  • Re: ARRAY STRINGA

    Sarà la funzione strcat()

    Dai un'occhiata al tuo libro e a questa pagina

    https://www.cplusplus.com/reference/cstring/strcat

    https://www.cplusplus.com/reference/cstring/strcpy
  • Re: ARRAY STRINGA

    Ciao Oregon e grazie delle tue dritte perché ho fatto progressi nel mio programma.
  • Re: ARRAY STRINGA

    Bene, basta leggere dal libro, non sono concetti complicati
  • Re: ARRAY STRINGA

    Buongiorno a tutti, ho ancora problemi nella gestione delle stringhe. Ho un manuale ma è molto complesso per me e quindi chiedo aiuto; ho notato che non si riesce a passare un array stringa ad una funzione char; è necessario sapere usare i puntatori per questo? io ho bisogno di poter ricevere dei caratteri stringa da un modulo GSM attraverso USART di un PIC, manipolarli e trasmettergli altri caratteri, quindi avrei bisogno di usare gli array
Devi accedere o registrarti per scrivere nel forum
15 risposte