title: Null terminator carrying through when indexing string
body: <p>I am trying pull specific characters from a string array, and assign them to defined indices in a new variable. I am having issues with what I expect is the null terminator, as there appear to be random assortment of undefined characters at the end of my strings.</p>
  
  <p>I am new to coding in C++, and lower level programming in general. Note that the function "charBi" works perfectly, but it no longer works  when assigning the output of "charBi" to the variable "binar" in the "strBi" function. I realize the code is probably not great, but any help is welcome, especially as it relates to getting rid of the random characters at the end of my "binar" string.</p>
  
  <p>Thanks!</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;array&gt;
  
  using namespace std;
  
  //Program meant to output a string of binary for an input word or phrase
  
  //library of letter and binary pairs
  char letterNumber[27][10]={"A01000001","B01000010","C01000011","D01000100","E01000101","F01000110","G01000111",
      "H01001000","I01001001","J01001010","K01001011","L01001100","M01001101","N01001110",
      "O01001111","P01010000","Q01010001","R01010010","S01010011","T01010100","U01010101",
      "V01010110","W01010111","X01011000","Y01011001","Z01011010"," 01011111"};
  
  //finds binary number associated with input character. One character input
  string charBi(char inputVar){ //WHY DOES THIS ONLY WORK IF THE FUNCTION IS A STRING?
      //loop setup
      int n=0;
      int last=sizeof(letterNumber)/sizeof(letterNumber[0]); // equal 27
      //loops through each of the strings in letterNumber
      while (n!=last) {
          if (letterNumber[n][0]==inputVar){ // if the letter is equal to input letter
              char bina[8]; //number of numbers following a letter
              for(int i=1;i&lt;9;i++){ // writes the number associated with the letter to bina
                  bina[i-1]=letterNumber[n][i]; // assigns number to specific index
              }
              return bina; //BINA DEFINED AS CHAR, BUT OUTPUTTING AS STRING
          }
          n++;
      }
  }
  
  //forms binary string of numbers for input phrase
  string strBi(string strg){ //WHY DOES THIS ONLY WORK IF THE FUNCTION IS A STRING?
      char binar[8*strg.length()]; //binary for each character is 8 numbers long
      for(int i=0;i&lt;strg.length();i++){ // for every letter in the input phrase
          string chbi=charBi(strg[i]); //gets binary for individual letter from charBi function
          cout&lt;&lt;"charbi sends: "&lt;&lt;chbi&lt;&lt;endl; //for debugging
          for(int n=0;n&lt;8;n++){ //for every 1 or 0 in the binary for an idividual letter
              binar[(8*i)+n]=chbi[n]; // assign in order to string binar
          }
              cout&lt;&lt;"binar updates to: "&lt;&lt;binar&lt;&lt;endl; //for debugging
              getchar(); //for debugging
      }
      return binar; //BINAR DEFINED AS CHAR, BUT OUTPUTTING AS STRING
  }
  
  int main(){
      cout&lt;&lt;"final string is: "&lt;&lt;strBi("HELLO WORLD");
      return 0;
  }
  </code></pre>