Onpin (Normal User)
Newbie
Messaggi: 6
Iscritto: 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
|
|
Bonny (Member)
Expert
Messaggi: 437
Iscritto: 24/04/2009
|
Cameriere del codice per favore
A parte il mio sarcasmo ...
Dai almeno una bozza, di pseudo codice dopo magari se ne può discutere insieme
|
|
Onpin (Normal User)
Newbie
Messaggi: 6
Iscritto: 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
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Non ho capito ... ma il codice che dovresti proporre qual è?
Con quale ciclo cerchi?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Onpin (Normal User)
Newbie
Messaggi: 6
Iscritto: 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
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Di che tipo è message_type e quanto vale la costante MES_TYPE_LEN ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Onpin (Normal User)
Newbie
Messaggi: 6
Iscritto: 10/09/2012
|
Il message_type è un char [3]
e il MES_TYPELEN 3.
Thanks
|
|
Bonny (Member)
Expert
Messaggi: 437
Iscritto: 24/04/2009
|
quando trovi "@01" per esempio,
Codice sorgente - presumibilmente C/C++ |
char es[] = "@01";
char *t = malloc(sizeof(char)*6);
// t = " \n";
strcpy(t, "0xFF"); // t = "0xFF \n"
//t + 4 offset
strcpy(t+4, es+1);// es +1 perchè devo scartare la @
//t = "0xFF01\n"
|
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Allora subito dopo la linea memcpy basta una
Codice sorgente - presumibilmente Plain Text |
if(message_item->message_type[0]=='@')
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|