title: Printing a particular hexadecimal value in character representation
body: <p>When trying to use <code>'\x05'</code> in a string, the compiled C code seems to behave oddly when handling the value.</p>
  
  <p>For instance when using the following string:</p>
  
  <pre><code>char *weird = "\x04\x68\x65\x79\x79\x03\x6e\x65\x74\x05\x6c\x6f\x63\x61\x6c\x00";
  </code></pre>
  
  <p>When printing each character of the string, the <code>'\x05'</code> is not corresponding to the integer 5, whereas the <code>'\x04'</code> and <code>'\x03'</code> are corresponding to the integers 4 and 3 respectively.</p>
  
  <p>The following for loop demonstrates the problem:</p>
  
  <pre><code>for(int i = 0; i &lt; strlen(question); i++){
      printf("question[%d] = %c\n", i, question[i]);
  }
  </code></pre>
  
  <p>Output:</p>
  
  <p><a href="https://i.stack.imgur.com/aFie9.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/aFie9.png" alt="0x05"></a></p>
  
  <p>Any ideas why this specific case of <code>'\x05'</code> is so troublesome?</p>