Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    8

    [C/C++] Assegnazione caratteri di controllo

    Ho una variabile tipo
    codice:
    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
    codice:
     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.

  2. #2
    codice:
    strcat(szStr1, 0x02);
    strcat(szStr1, 0x03);
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    MItaly ... 0x02 e 0x03 non sono puntatori a stringhe ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    8
    nessun suggerimento?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    codice:
      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);

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    8
    ottimo, semplice ed immediato mi piace, grazie. Nel frattempo avevo trovato un'altra soluzione ma questa e' migliore.

  7. #7
    Originariamente inviato da oregon
    MItaly ... 0x02 e 0x03 non sono puntatori a stringhe ...
    Ops...
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.