Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Convertire stringhe in esadecimale e fare il contrario
Forum - C/C++ - Convertire stringhe in esadecimale e fare il contrario

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


Messaggi: 15
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 20:50
Giovedì, 22/03/2012
C'è un modo per trasformare ad esempio: "0x536F6E6F20756E6120667261736520696E20657361646563696D616C65"
in "Sono una frase in esadecimale" e ovviamente fare il contrario? Mettendo tutto in un puntatore a carattere, in un string o comunque in una variabile?

Nella rete ho trovato diversi metodi, ma si limitano a stamparlo a video... :(

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6367
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:31
Giovedì, 22/03/2012
Non si inseriscono dei caratteri "in un puntatore" ... in ogni caso, con piccole modifiche al codice che ti serve per visualizzare il messaggio, lo puoi far funzionare per fare quello che chiedi.


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à.
PM Quote
Avatar
RENOOB (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 21:50
Giovedì, 22/03/2012
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. int main ()
  7. {
  8. char *ESADECIMALE = "Sono Una frase in esadecimale";
  9. for (int i=0;i<strlen(ESADECIMALE);i++)
  10. cout << hex << (int)ESADECIMALE[i];
  11. }



Non so come infilare tutto in una variabile :(

Ultima modifica effettuata da RENOOB il 22/03/2012 alle 21:52
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6367
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:58
Giovedì, 22/03/2012
Ma devi utilizzare C o C++?

Se usi C++, allora usa la classe

string

e non le stringhe del C.

Se devi utilizzare le stringe del C, allora non utilizzare cout ... hex e compagnia bella.

Ultima modifica effettuata da nessuno il 22/03/2012 alle 22:02


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à.
PM Quote
Avatar
RENOOB (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 22:06
Giovedì, 22/03/2012
sono appena uscito dal C, e non ho molta simpatia con le classi purtroppo, non so nemmeno da dove iniziare :d

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6367
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:07
Giovedì, 22/03/2012
Testo quotato

Postato originariamente da RENOOB:

sono appena uscito dal C, e non ho molta simpatia con le classi purtroppo, non so nemmeno da dove iniziare :d



Quindi? C o C++ ?


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à.
PM Quote
Avatar
RENOOB (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 22:12
Giovedì, 22/03/2012
c++

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6367
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:19
Giovedì, 22/03/2012
Quindi devi usare oggetti di classe string e stringstream

Ad esempio, il testo iniziale sta nell'oggetto

frase

e i valori finali nell'oggetto

fraseh

La cout è usata solo per mostrarti il contenuto di fraseh

Studia il codice

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.         stringstream ss;
  10.         string frase = "CIAO";
  11.         string fraseh;
  12.        
  13.         ss.str("");
  14.         for(unsigned int i=0; i<frase.length(); i++)
  15.                 ss << hex << (int)frase[i];
  16.  
  17.         fraseh = ss.str();
  18.  
  19.         cout << fraseh << endl;
  20.  
  21.         return 0;
  22. }




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à.
PM Quote
Avatar
RENOOB (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 22:41
Giovedì, 22/03/2012
Grazie funziona benissimo :rotfl:

solo, che ora non riesco a fare il contrario, trasformare la frase in esadecimale in normale.

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo