PDA

Visualizza la versione completa : [C/C++] Assegnazione caratteri di controllo


Onecarb
15-04-2007, 20:27
Ho una variabile tipo
unsigned char szStr1[BYTES]="prova"; e vorrei concatenare all'inizio e alla fine i caratteri ascii STX e ETX (0X02 e 0X03), non riesco a capire come definirli e come concatenarli ho provato


unsigned char STX = 0x02; valore ascii ^B
unsigned char ETX = 0x03; valore ascii ^C
unsigned char szStr[]="prova" ;
unsigned char szStr1[]="" ;
strcat(( char *)szStr1,(const char *)STX);
strcat(( char *)szStr1,(const char *)szStr);
strcat(( char *)szStr1,(const char *)&ETX);

pero' a parte la seconda concatenazione le altre o mi danno errore e risultano codificate in maniera non corretta.

MItaly
15-04-2007, 20:42
strcat(szStr1, 0x02);
strcat(szStr1, 0x03);

oregon
15-04-2007, 20:49
MItaly ... 0x02 e 0x03 non sono puntatori a stringhe ...

Onecarb
15-04-2007, 23:43
nessun suggerimento?

oregon
16-04-2007, 00:12
char STX[] = {0x02, 0x00};
char ETX[] = {0x03, 0x00};
char szStr1[] = "prova";
char string[10];

strcpy(string, STX);
strcat(string, szStr1);
strcat(string, ETX);

printf("%s\n", string);

Onecarb
16-04-2007, 00:31
ottimo, semplice ed immediato mi piace, grazie. Nel frattempo avevo trovato un'altra soluzione ma questa e' migliore.

MItaly
16-04-2007, 15:41
Originariamente inviato da oregon
MItaly ... 0x02 e 0x03 non sono puntatori a stringhe ...
Ops... :fagiano:

Loading