title: Correct sscanf() prototype, "int sscanf ( const char * s,const char * format, ...);" or int sscanf (char * s,const char * format, ...);?
body: <p>Here is the prototype for the <code>sscanf()</code> function as described in the <code>cplusplusreference</code>(<a href="http://www.cplusplus.com/reference/cstdio/sscanf/" rel="nofollow">link</a>) :</p>
  
  <pre><code> int sscanf ( const char * s, const char * format, ...);
  </code></pre>
  
  <p>But I find something fishy about it.Not only does the type of first argument differ from many other string library functions like <code>strcpy()</code>(<a href="http://www.cplusplus.com/reference/cstring/strcpy/" rel="nofollow">1</a>) and <code>strcat()</code>(<a href="http://www.cplusplus.com/reference/cstring/strcat/" rel="nofollow">2</a>) (<code>const char*</code> vs <code>char*</code>),but it also seems odd how can we make the array pointed by the first argument constant when the very purpose of the function is to write to it(alter the contents of the array) using that pointer!!</p>
  
  <p>I mean, in <code>int sscanf (const char * s,const char * format, ...);</code> aren't we telling through the <code>const</code> qualifier that we can't change the array pointed by <code>s</code> using <code>s</code>? Is that a typo on that site, or do I fail to understand something?Please explain.</p>