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 - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:56
Giovedì, 22/03/2012
Beh ... potevi provarci anche tu ...

Comunque, partendo da fraseh avrai in frase2 la stringa originaria ...

Codice sorgente - presumibilmente C/C++

  1. ss.str("");
  2. for(unsigned int i=0; i<fraseh.length(); i+=2)
  3.     ss << (char)strtoul(fraseh.substr(i, 2).c_str(), NULL, 16);
  4. string frase2 = ss.str();
  5.  
  6. cout << frase2 << endl;


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


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
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 11:57
Venerdì, 23/03/2012
ormai anche nessuno si è arreso al codice già pronto... pur di postare qualcosa XD

PM Quote
Avatar
RENOOB (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 14:48
Venerdì, 23/03/2012
Codice sorgente - presumibilmente C#

  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. string StringToHex(string frase)
  8. {
  9.     stringstream ss;
  10.     string fraseh;
  11.     ss.str("");
  12.     for(unsigned int i=0; i<frase.length(); i++)
  13.     ss << hex << (int)frase[i];
  14.     fraseh = ss.str();
  15.     return fraseh;
  16. }
  17. string HexToString(string fraseh)
  18. {
  19.     stringstream ss;
  20.     ss.str("");
  21.     for(unsigned int i=0; i<fraseh.length(); i+=2)
  22.     ss << (char)strtoul(fraseh.substr(i, 2).c_str(), NULL, 16);
  23.     string frase2 = ss.str();
  24.     return frase2;
  25. }
  26.  
  27. int main ()
  28. {
  29.         cout << HexToString("6369616f");
  30.         return 0;
  31. }



Restituisce errore:
Codice sorgente - presumibilmente C/C++

  1. C:\Users\...\Stinghe\main.cpp||In function 'std::string HexToString(std::string)':|
  2. C:\Users\...\Stinghe\main.cpp|22|error: 'strtoul' was not declared in this scope|
  3. ||=== Build finished: 1 errors, 0 warnings ===|


:d

Ultima modifica effettuata da RENOOB il 23/03/2012 alle 14:49
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:23
Venerdì, 23/03/2012
Testo quotato

Postato originariamente da HeDo:

ormai anche nessuno si è arreso al codice già pronto... pur di postare qualcosa XD



Purtroppo sì ... magari si tira su un po' il forum ...


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
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:34
Venerdì, 23/03/2012
Ma quale compilatore usi?


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 15:59
Venerdì, 23/03/2012
Uso l'ide Code :: Blocks che, se non erro, usa il compilatore "GNU GCC Compiler"

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:02
Venerdì, 23/03/2012
Probabilmente ha la necessità dell'include

#include <cstdlib>


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 16:04
Venerdì, 23/03/2012
:k: Funziona! Grazie infinite!

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