fork download
  1. #include <stdio.h>
  2. #include <string.h> //strlen
  3.  
  4. int main()
  5. {
  6. // para loop "for"
  7. int i;
  8.  
  9. // area de entrada
  10. char hex[] = "0x6F0x69";
  11. int sizeHex = strlen(hex);
  12.  
  13. // area de saida
  14. char text[10];
  15.  
  16. // ponteiro para area de saida
  17. char* pText = text;
  18.  
  19. // area de trabalho, vai ser usada com scanf --> vai 0x6F, depois 0x69, etc
  20. char tmp[5];
  21.  
  22. // variavel de conveniencia
  23. int ch;
  24.  
  25. tmp[4] = 0; // paa delimitar string de trabalho
  26.  
  27. // trata todos os caracteres da area de entrada
  28. // anda de 4 em 4 porque cada caracter esta' codificado como "0xNN"
  29. for (i = 0; i < sizeHex; i += 4)
  30. {
  31. memcpy(tmp, hex+i, 4);
  32. sscanf(tmp, "%x", &ch);
  33.  
  34. // transfere para area de saida, e avanca ponteiro na area de saida
  35. *pText++ = (char)ch;
  36. }
  37.  
  38. *pText = 0; // para delimitar string
  39.  
  40. printf("string convertida: %s\n",text);
  41. }
  42.  
  43.  
Success #stdin #stdout 0s 2168KB
stdin
1
stdout
string convertida: oi