title: Debug Assertion Failure: string subscript out of range
body: <p>I'm trying to learn coding, and am creating a binary search program. When trying to run my code, I get a debug assertion failure (see debug output below) when I try to call upon the search function. What have I screwed up? </p>
  
  <pre><code>#include&lt;iostream&gt;
  #include&lt;string&gt;
  
  using namespace std;
  
  const int N = 100;
  
  string names[N];
  string query;
  
  //function to search for names in the list
  
  string search(int largestNum, int smallestNum, string names, string query);
  
  
  int main(){
  
      cout &lt;&lt; "Please enter the names, pressing enter after each entry." &lt;&lt; endl 
          &lt;&lt; "Type done when you are finished the list" &lt;&lt; endl
          &lt;&lt; "1.";
      cin &gt;&gt; names[0];
  
      int ticker1 = 1;
  
      /*this loop outputs a number 1 greater then the last and allows the 
      user to enter a new name until they type "done" which will exit the loop*/
      do {
          cout &lt;&lt; endl &lt;&lt; ticker1 + 1 &lt;&lt; ".";
          cin &gt;&gt; names[ticker1];
          ticker1++;
      } while ((names[ticker1 - 1] != "done") &amp;&amp; (names[ticker1 - 1] != "Done"));
  
      cout &lt;&lt; endl;
  
      int ticker2 = 0;
  
      while (ticker2 &lt; (ticker1 - 1)){
          cout &lt;&lt; ticker2 + 1 &lt;&lt; "." &lt;&lt; names[ticker2] &lt;&lt; endl;
          ticker2++;
      }
  
      int largestNum = ticker1;
      int smallestNum = 0;
  
      cout &lt;&lt; "Please Enter the name that you would like to search for:";
      cin &gt;&gt; query;
  
      cout &lt;&lt; search(largestNum, smallestNum, names[N], query);
      return 0;
  }
  //function to search for names in the list
  
  string search(int largestNum, int smallestNum, string names, string query){
      string middleName;
  
      int middle = ((largestNum - smallestNum) / 2);
  
      middleName = names[middle];
      cout &lt;&lt; middleName;
  
      if (query == middleName) return { "Present", "Location:" + middle };
      else return { "Not around" };
  }
  </code></pre>
  
  <p>DEBUG OUTPUT</p>
  
  <pre><code>'Learning C++.exe' (Win32): Loaded 'C:\Users\Gareth\Programming\Projects\Learning C++\Debug\Learning C++.exe'. Symbols loaded.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp120d.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120d.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
  Debug Assertion Failed!
  
  Program: C:\Windows\SYSTEM32\MSVCP120D.dll
  File: c:\program files (x86)\microsoft visual studio 12.0\vc\include\xstring
  Line: 1685
  
  Expression: string subscript out of range
  
  For information on how your program can cause an assertion
  failure, see the Visual C++ documentation on asserts.
  
  (Press Retry to debug the application)
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\HsSrv.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmm.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dsound.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\powrprof.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\combase.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\devobj.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\clbcatq.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Program Files (x86)\DisplayFusion\Hooks\AppHookx86_45641EBC-D115-4D9A-BB79-9CB07566629C.dll'. Module was built without symbols.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shell32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9200.16658_none_bf1359a245f1cd12\comctl32.dll'. Cannot find or open the PDB file.
  'Learning C++.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shlwapi.dll'. Cannot find or open the PDB file.
  The program '[9200] Learning C++.exe' has exited with code 3 (0x3).
  </code></pre>