Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Array in C
Forum - C/C++ - Array in C

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Onpin (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/09/2012

Segnala al moderatore
Postato alle 14:38
Lunedì, 10/09/2012
Salve a tutti,
avrei bisogno con urgenza di un vs cortese contributo sul C.

Ho questo Array:
static _DSPByte Triletterale[8][4]={"ABC","AXT","ALP","PAC","REV","@01","@02","@03"};

Dovrei scrivere del codice che quando troverò una @ (come primo carattere) della stringa dell'array, devo sostituire dovrà sostituire il primo carattere con 0xFF.

GRAZIE


___________________
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 435
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 14:44
Lunedì, 10/09/2012
Cameriere del codice per favore:):)

A parte il mio sarcasmo ...

Dai almeno una bozza, di pseudo codice dopo magari se ne può discutere insieme:k:


Bonny
PM Quote
Avatar
Onpin (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/09/2012

Segnala al moderatore
Postato alle 14:52
Lunedì, 10/09/2012
Sorry...

All'interno di un ciclo ho:

--- memcpy(message_item->message_type, Triletterale, MES_TYPE_LEN);

Il Triletterale per le stringhe diverse da quelle con @ questo è OK, ma come faccio per quelle con @?

Per quest'ultime dovrei inviare anzichè @01 0xFF01.

GRAZIEEEEEEEEEE


___________________
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:54
Lunedì, 10/09/2012
Non ho capito ... ma il codice che dovresti proporre qual è?

Con quale ciclo cerchi?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Onpin (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/09/2012

Segnala al moderatore
Postato alle 15:03
Lunedì, 10/09/2012
Vi chiedo perdono della poca chiarezza: :-)

Devo popolare una campo (message_type) di un messaggio da inviare (message_item) con il Triletterale con l'istruzione:
---> memcpy(message_item->message_type, Triletterale , MES_TYPE_LEN);

Il Triletterale è un array di string2:
static _DSPByte Triletterale[8][4]={"ABC","AXT","ALP","PAC","REV","@01","@02","@03"};

Per quanto riguarda le Stringhe che cominciano con "@", dovrei popolare il message_type con 0xFF01 anzichè "@01", 0xFF02 anzichè "@02".....

Grazie:d





___________________
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:08
Lunedì, 10/09/2012
Di che tipo è message_type e quanto vale la costante MES_TYPE_LEN ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Onpin (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/09/2012

Segnala al moderatore
Postato alle 15:13
Lunedì, 10/09/2012
Il message_type è un char [3]
e il MES_TYPELEN 3.

Thanks


___________________
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 435
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 15:16
Lunedì, 10/09/2012
quando trovi "@01" per esempio,
Codice sorgente - presumibilmente C/C++

  1. char es[] = "@01";
  2. char *t = malloc(sizeof(char)*6);
  3. // t = "      \n";
  4. strcpy(t, "0xFF"); // t = "0xFF   \n"
  5. //t + 4 offset
  6. strcpy(t+4, es+1);// es +1 perchè devo scartare la @
  7. //t = "0xFF01\n"



Bonny
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:18
Lunedì, 10/09/2012
Allora subito dopo la linea memcpy basta una

Codice sorgente - presumibilmente Plain Text

  1. if(message_item->message_type[0]=='@')
  2.      message_item->message_type[0]=0xFF;


Ultima modifica effettuata da nessuno il 10/09/2012 alle 15:36


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo