title: std::string::find returns wrong answer
body: <p>There are some posts concerning std::string::find (like <a href="https://stackoverflow.com/questions/4299605/problem-with-stdstringfind">this one here</a> and <a href="https://stackoverflow.com/questions/44488093/stdstringfind-always-returns-stringnpos-even">this one too</a>) but I have a somewhat different situation:</p>
  
  <pre><code>#include &lt;string&gt;
  #include &lt;stdio.h&gt;
  
  int main(int argc, char **argv)
  {
      std::string haystack = "ab\\x10c\200\\x00\\x00\\x00\\x00";
      std::string needle   = "\\x00";
  
      printf("first index is %d\n",(int) haystack.find(needle));
  
      return 0;
  }
  </code></pre>
  
  <p>According to the values I'm wondering why 8 is returned:</p>
  
  <p>I guess "\200" is counted as 1 character (?)
  Can I make <code>find</code> treat <code>"\\x10"</code> as 1 character too?</p>